kubernetes架构可简单分为主节点(Master),工作节点(Worker/Node)和数据库Etcd,其中主节点为集群的控制单元,一般不会运行业务应用程序,主要包含组件有kube-apiserver
、kube-controller-manager
、kube-scheduler
。工作结点为主要部署应用程序容器的节点,主要包含组件有kubelet
、kube-proxy
,如果Master节点也要部署容器,也要包含这两个组件。
一个集群中可以有多个Node节点,用以保证集群容器的分布式部署和业务应用的高可用性,也可以有多个Master节点,通过负载均衡实现集群控制节点的高可用。
Kubernetes 组件
kube-apiserver:
API 服务器是 Kubernetes 控制平面的组件, 该组件负责公开了 Kubernetes API,负责处理接受请求的工作。 API 服务器是 Kubernetes 控制平面的前端。
kube-scheduler:
kube-scheduler
是控制平面的组件, 负责监视新创建的、未指定运行节点(node)的 Pods, 并选择节点来让 Pod 在上面运行。
kube-controller-manager:
kube-controller-manager 是控制平面的组件, 负责运行控制器进程。运行控制器来实现 Kubernetes API 行为。
etcd:
一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后台数据库。
kubelet:
kubelet会在集群中每个节点(node)上运行。 它保证容器(containers)都运行在 Pod 中。
kube-proxy(可选):
kube-proxy 是集群中每个节点(node)上所运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。