文章目录
一、Kubernetes概述
1、什么是Kubernetes
kubernetes,词根源于希腊语的舵手、飞行员。简称“k8s”,至于为什么这样叫,是因为这个单词比较长,写起来太累了,而“k”和“s”之间是8个字母,所以叫k8s。
kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,它的目标是让部署容器化的应用简单并且高效。
2、作用
k8s用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。
是不是有些难理解,简单来说就是k8s是负责自动化运维管理多个容器化程序(比如docker)的集群,它是一个生态及其丰富的容器编排框架。
3、由来
k8s是有Google的borg系统(博格系统,Google内部使用的大规模容器编排工具)作为原型,后经过go语言延用borg的思路重写并捐献给CNCF基金会开源。
k8s官网https://kubernetes.io
GitHub: https://github.com/kubernetes/kubernetes
二、为什么要用k8s
试想下传统的后端部署方法:把程序包(包括可执行的二进制文件、配置文件等)放到服务器上,接着运行启动脚本把程序跑起来,同时启动守护脚本定期检查程序运行状态、必要的话重新拉起程序。
如果服务的请求量上来,已部署的服务响应不过来怎么办?传统的做法往往是,如果请求量、内存、CPU超过阈值做了告警,运维人员马上再加几台服务器,部署好服务之后,接入负载均衡来分担已有服务的压力。
这样问题就出现了:从监控告警到部署服务,中间需要人力介入。那么,有没有办法自动完成服务的部署、更新、卸载和扩容、缩容呢?而这就是K8S要做的事情:自动化运维管理容器化(Docker)程序。
k8s是Google开源的容器集群管理系统,在Docker等容器技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。其主要功能如下:
- 使用Docker等容器技术对应用程序包装(package)、实例化 (instantiate)、运行(run)。
- 以集群的方式运行、管理跨机器的容器
- 解决 Docker跨机器容器之间的通讯问题。
- k8s的自我修复机制使得容器集群总是运行在用户期望的状态。