这些组件 - 我们稍后将详细分析 - 是: Kube-API 服务器:集群内部和外部所有通信的主要访问点。 Etcd:一个高度可靠的分布式数据库,存储集群的整个状态。 Kube-scheduler:负责应用程序所需资,优化集群的整体性能。 Kube-controller-manager - 负责控制和管理集群的状态。
虽然控制平面负责管理决策和监视集群的状态,但还有其他元素扮演着更具操作性的角色:我们正在谈论工作节点。 采用 K8s 之前:阅读最佳实践和要避免的错误! 下载 Kubernetes 采用指南白皮书 工作节点 工作节点是Kubernetes 集群中工作负载的实际执行者。如果控制平面负责管理决策和监视集群的状态,那么工作节点负责组成应用程序的容器的实际执行。
为了确保所有这一切以高效且协调的方式发生,每个 希腊电报数据 节点内都有一系列基本组件,允许容器的执行以及与控制平面的通信。这些主要组成部分是: Kubelet:这是一个不断与控制平面通信的代理,接收有关容器所需状态的指令(存储在 etcd 中)并监视节点上运行的资源。 Kube-Proxy:负责管理节点内的网络。分布在集群中不同节点上的 Pod 之间的通信是 Kubernetes 中最复杂和最关键的方面之一(“Pod”是 Kubernetes 中可以创建和管理的应用程序的最小元素,由一个或多个容器组成) 。
容器运行时:这是实际在每个节点内运行容器的东西。 Kubernetes 支持多种类型的容器运行时,例如 Docker、containerd 或 CRI-O,您对运行时的选择可能会根据您的基础设施需求或用户偏好而有所不同。 工作节点和控制平面之间的交互对于集群的正确运行至关重要。控制平面确定集群的“期望状态”,例如运行的 Pod 数量及其分布,而工作节点通过 Kubelet 执行这些指令。
Kubelet 不断向控制平面发送更新,通知其容器和节点的当前状态。这种双向通信使 Kubernetes 能够动态响应变化:如果节点无法访问或容器停止运行,控制平面可以立即进行干预以恢复所需的状态。 另请阅读:Kubernetes 操作员:它们是什么(带有示例) 控制平面详细信息 我们已经了解了控制平面和工作节点如何以互补的方式工作以确保 Kubernetes 集群的正确运行。