Kubernetes组件
一个 Kubernetes 集群包含 集群由一组被称作节点的机器组成。这些节点上运行 Kubernetes 所管理的容器化应用。集群具有至少一个工作节点和至少一个主节点。
工作节点托管作为应用程序组件的 Pod 。主节点管理集群中的工作节点和 Pod 。多个主节点用于为集群提供故障转移和高可用性。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WlvrhmwE-1605767720210)(D:\笔记\Kubernetes\images\components-of-kubernetes.svg)]
一、 控制平面组件(Control Plane Components)
控制平面组件对集群做出全局决策(如调度),以及检测和响应集群事件(如,当不满足部署的replicas字段事,启动新的pod)。
控制平面组件可以在集群中的任何节点上运行。 然而,为了简单起见,设置脚本通常会在同一个计算机上启动所有控制平面组件,并且不会在此计算机上运行用户容器。
(1) kube-apiserver
API 服务器是Kubernetes控制面的组件,公开了Kubernetes API。API服务器是Kubernetes控制面的前端。Kubernetes API 服务器的主要实现是 kube-apiserver。 kube-apiserver 设计上考虑了水平伸缩,也就是说,它可通过部署多个实例进行伸缩。
(2) etcd
etcd是兼具一致性和高可用性的键值数据库,可以作为保存Kubernetes所有集群数据的后台数据库。
(3) kube-scheduler
节点上的组件,该组件监视那些新创建的未指定运行节点的 Pod,并选择节点让 Pod 在上面运行。
调度决策考虑的因素包括单个 Pod 和 Pod 集合的资源需求、硬件/软件/策略约束、亲和性和反亲和性规范、数据位置、工作负载间的干扰和最后时限。
(4) kube-controller-manager
在主节点上运行