一个 Kubernetes 集群的机器节点有两种角色—— Master 和 Node,都可由一个或多个节点组成,且同一个节点可以既是 Master 也是 Node。其中 Master 节点负责全局决策、资源调度、Node 与 Pod 管理,等等,属于管控节点;Node 节点为工作机器,负责运行容器化应用。
1. Master 节点组件
(1)kube-apiserver
kube-apiserver 负责公开 Kubernetes API,负责处理接受请求的工作。 API 服务器是 Kubernetes 控制平面的前端。
(2)etcd
一致且高度可用的键值存储,用作 Kubernetes 的所有集群数据的后台数据库。
(3)kube-scheduler
kube-scheduler 负责监视新创建的、未指定运行节点(node)的 Pods, 并选择节点来让 Pod 在上面运行。
(4)kube-controller-manager
kube-controller-manager 负责运行控制器进程。
(5)cloud-controller-manager
一个 Kubernetes 控制平面组件, 嵌入了特定于云平台的控制逻辑。 云控制器管理器(Cloud Controller Manager)允许你将你的集群连接到云提供商的 API 之上, 并将与该云平台交互的组件同与你的集群交互的组件分离开来。
2. Node 节点组件
(1)kubelet
kubelet 会在集群中每个 Node 节点上运行。 它保证容器(containers)都运行在 Pod 中。
(2)kube-proxy
kube-proxy 是集群中每个 Node 节点上运行的网络代理