Google开发的自动化容器运营开源平台,操作包括部署、调度和节点间集群扩展。可以看做是管理Docker容器的工具。
- 快速精准地部署应用程序;
- 即时伸缩应用程序;
- 无缝展现新特征;
- 限制硬件用量仅为所需资源。
- 可移动:公有云、私有云、混合云、多台云
- 可扩展:模块化、插件化、可挂载、可组合
- 自修复:自动部署、自动重启、自动复制、自动扩容和缩容。
一、概念
1.1 Cluster
- Cluster 是计算、存储和网络资源的集合。
- Kubernetes 利用这些资源运行各种基于容器的应用。
1.2 Master
- Master 是 Cluster 的大脑,每个集群至少有一个Master。
- 控制和管理集群,主要职责是调度,即决定将应用放在哪里运行。
- 几乎所有的集群控制指令都是在Master节点上执行。
- Master节点可以是物理机或者虚拟机。
- 为了实现高可用,可以运行多个 Master。
1.2.1 关键进程:Kubernetes API Server
- 提供Kubernetes各类资源对象的增删改查HTTP Reset接口,是整个系统的数据总线和数据中心;
- 提供集群管理的REST API接口,包括认证、授权、集群状态变更、集群安全等。
1.2.2 关键进程:Kubernetes Controller Manager
- 负责集群内部Node节点、Pod副本、Endpoint、Namespace、服务账号、资源配置的管理。
- 当某个Node宕机,可以及时发现并执行自动化修复流程,确保集群处于可用状态。
1.2.3 关键进程:Kubernetes Scheduler
利用特定调度算法把Pod调度到指定Node上,即绑定操作;
1.2.4 Etcd
保存集群所有网络配置和对象状态信息。
1.3 Node
- Master节点之外的,Node 的职责是运行容器应用。
- Node 由 Master 管理,Node 负责监控并汇报容器的状态,并根据 Master 的要求管理容器的生命周期。
- Node可以是物理机或者是虚拟机。
1.3.1 进程:Kubelet
- 代理进程,Node节点上的Pod管家;
- 处理Master节点下发到本节点的任务,管理Pod和容器;
- 定期向Master汇报本节点资源的使用情况;
1.3.2 进程:Kube-proxy
监听服务变化情况,并创建路由规则进行服务负载均衡。
1.3.2 Docker引擎
负责容器的创建和管理等工作。
1.4 Pod
- Pod是kubernets的最小工作和调度单元,对容器而言类似逻辑主机。
- 每个pod包含一个或多个紧密相关的容器。
- Pod在Node节点上被创建、启动和销毁。
- Pod中的容器会做为一个整体被master调度到一个node上运行。
- Pod包含一个Pause容器和其他多个业务容器,业务容器共享Pause容器的网络栈和挂载卷。
- 同一个Pod里的容器仅需通过本地就能互相通讯。