<返回更多

Kubernetes 内部原理:架构

2023-09-18  微信公众号  小技术君
加入收藏

在本文中,我们将深入探讨 Kube.NETes 架构,并探讨其关键组件。

一个 Kubernetes 集群由两个主要组件组成:

控制平面

控制平面是 Kubernetes 集群的“大脑”,它协调和编排各种组件,以确保系统的期望状态得以实现和维护。控制平面进一步包括以下组件:

1. Kube-API 服务器

API 服务器是控制平面的中央管理点,它暴露 Kubernetes API,客户端可以使用该 API 与集群进行交互。因此,当我们使用 kubectl 管理集群时,实际上是通过 HTTP REST API 与 API 服务器进行通信。kube-api 服务器负责以下任务:

2. etcd

etcd 是 Kubernetes 使用的分布式键值存储,用于存储集群的配置数据和资源的期望状态。Kube-API 服务器使用 etcd 的观察功能来跟踪对象状态的更改。它是控制平面中的唯一有状态组件,负责以下任务:

3. Kube-scheduler

Kube-scheduler 负责在工作节点上调度 pod。当我们创建一个 pod 并将其提交到 API 服务器时,调度程序会自动获取 pod,根据可用资源和调度规则评估节点,并将 pod 分配给适当的节点。

4. Kube Controller 管理器

kube-controller-manager 是一个关键组件,运行着负责维护集群的期望状态和管理系统不同方面的各种控制器。

每个控制器关注于集群管理的特定领域,自动化任务,确保资源的实际状态与期望状态相匹配。

以下是重要的内置 Kubernetes 控制器列表:

Set Controller**:确保在所有或一部分节点上运行特定 pod 的副本。通常用于任务,如节点监视代理或网络组件。

5. 云控制器管理器 (CCM)

当 Kubernetes 部署在云环境中时,云控制器管理器充当 Kubernetes 集群和云平台 API 之间的桥梁。它管理 Kubernetes 使用的云特定资源的生命周期。

(1)它从主 Kubernetes 控制平面中卸载了云特定的控制循环和功能,减少了其复杂性,使其更易于维护和扩展。

(2)它托管各种云特定控制器,负责管理特定于云提供商的资源。这些控制器包括:

(3)CCM 管理云资源,确保它们与 Kubernetes 资源定义的期望状态相匹配。例如,它可能根据缩放要求创建或释放云实例。

(4)它与云提供商的 API 进行通信,执行操作,例如创建实例、配置网络、管理存储资源等。

(5)它确保适当管理安全设置和凭据,与云服务交互时进行管理。

工作节点

工作节点负责运行容器化应用程序。它包括以下组件。

1. Kubelet

Kubelet 是 Kubernetes 控制平面和节点上运行的容器之间的关键桥梁,确保集群的期望状态得以实现和维护。

它在集群中的每个节点上运行一个代理组件,以将节点的状态和资源利用率报告给 Kubernetes 控制平面。它不以容器形式运行,而是由 systemd 管理的守护程序。

以下是 kubelet 的主要功能和职责:

2. Kube 代理

Kube 代理,即 Kubernetes 代理,是运行在 Kubernetes 集群中每个节点上的网络代理。其主要功能是管理 pod 和服务之间的网络通信,为容器化应用程序提供可靠和一致的网络环境。它负责以下任务:

3. 容器运行时

容器运行时环境负责根据 pod 规范创建、启动、停止和管理容器。

一些常用的 Kubernetes 容器运行时包括 Docker、contAInerd、CRI-O、rkt(发音为 "rocket")等。

Kubernetes 的架构促进了分布式微服务导向的方法,使开发人员可以专注于应用程序逻辑,而平台负责部署、扩展和负载均衡。

无论是在本地、云中还是混合环境中,Kubernetes 的架构使组织能够高效地管理复杂的容器化工作负载,同时秉承模块化、抽象和自动化的原则。

关键词:Kubernetes      点击(11)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多Kubernetes相关>>>