Kubernetes:组件的架构

根据《Kubernetes完全指南》,总结Kubernetes组件的架构。

Kubernetes集群由以下7个组件构成,以kube-apiserver为核心的分布式系统。
* etcd
* kube-apiserver
* kube-scheduler
* kube-controller-manager
* kubelet(加上容器运行时)
* kube-proxy(加上网络插件)
* kube-dns(CoreDNS)

image.png

etcd 可将以下内容进行本地化处理

使用OSS的分布式键值存储(KVS)来存储Kubernetes集群的注册信息。
建议使用奇数个节点(3/5/7)来组建集群。

kube-apiserver 可能安装在 Kubernetes 集群中的主节点上,它是集群的控制平面组件之一,负责处理 API 请求并与其他组件进行通信。

提供Kubernetes API的组件。
通过kubectl向kube-apiserver发送请求,执行部署、服务等的创建和删除操作。

image.png

kube-scheduler发送请求给kube-apiserver,以更改并调度此节点信息。
随后,kubelet在节点上启动Pod。

image.png

快按钮-调度器

考虑到节点的状态和亲和性等因素,对未分配节点的启动节点进行决策。

Kubernetes 控制器管理器

执行各种控制器的组件。例如)在监视Deployment和ReplicaSet状态的同时,创建所需的Pod/副本。

kubelet –
kubelet 是 Kubernetes 中的一个核心组件,负责管理和执行容器的生命周期。

在每个Kubernetes节点上运行的组件。与Docker等容器运行时配合,执行容器的启动和停止操作。

Kube-Proxy 可绕道

以下为中文翻译(仅提供一种选择):

这是在每个Kubernetes节点上运行的组件。在创建Service时,它决定了将流量转发到ClusterIP或节点端口的方式。
* userspace:在用户空间进行处理,而不是内核中处理。
* iptables:通过内核的iptables进行处理,因此具有快速而稳定的处理能力。
* ipvs:适用于大规模环境的处理方式。

需要与其他软件(如Flannel和Open vSwitch等)进行集成,以构建覆盖网络的另一种选择。

kube-dns(接替者:CoreDNS)

Kubernetes集群中的DNS服务器。
在创建Service或者与Service相关联的Pod发生更改时,将协调更新DNS条目。

bannerAds