Kubernetes API 服务器的主要实现是 kube-apiserver,用户通过UI或CLI对K8S的API进行访问时,会颠末kube-apiserver接受哀求。 kube-apiserver 设计上思量了水平扩缩,也就是说,它可通过摆设多个实例来进行扩缩,并在这些实例之间平衡流量。
b. kube-controller-manager
在K8S中,一切皆资源,kube-controller-manager便是通过控制这些控制器去控制这些资源。从逻辑上讲, 每个控制器都是一个单独的进程, 但是为了降低复杂性,它们都被编译到同一个可执行文件,并在同一个进程中运行。
这些控制器包括:
节点控制器(Node Controller):负责在节点出现故障时进行通知和相应。
任务控制器(Job Controller):监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成。
端点分片控制器(EndpointSlice controller):添补端点分片(EndpointSlice)对象(以提供 Service 和 Pod 之间的链接)。
服务账号控制器(ServiceAccount controller):为新的命名空间创建默认的服务账号(ServiceAccount)。
c. cloud-controller-manager
kube-controller-manager控制当地资源,cloud-controller-manager控制云端资源,负责与各类第三方云平台进行对接。
d. kube-scheduler
kube-scheduler 负责资源的调度,按照预定的调度计谋将 Pod 调度到相应的机器上。(后文在核心概念篇会详细先容 Pod)
e. etcd