K8S 架构图如下:
官方文档: https://kubernetes.io/docs/concepts/architecture/
kube-api-server 是集群的核心, 是k8s中最重要的组件, 因为它是实现声明式api的关键, 整个集群的入口,所有请求都要经过它, api接口服务. kubernetes api-server的核心功能是提供了Kubernetes各类资源对象 ( pod**、** RC **、**service等)的增、 删、 改、 查以及watch等HTTP REST接口.
kube-controller-manager 的作用简而言之: 保证集群中各种资源的实际状态( status) 和用户定义的期望状态 ( spec) 一致。 官方定义: kube-controller-manager 运行控制器,它们是处理集群中常规任务的后台线程。当集群Pod/Service 出现故障的时候,会做出相应的相应.
kube-scheduler 是kubernetes 系统的核心组件之一, 主要负责整个集群资源的调度功能, 根据特定的调度算法和策略, 将Pod 调度到最优的工作节点上面去, 从而更加合理、 更加充分地利用集群的资源。
etcd 是兼具一致性和高可用性的键值数据库, 可用于服务发现以及配置中心。 采用raft一致性算法, 基于Go语言实现。 是保存Kubernetes 所有集群数据的后台数据库, 在整个云原生中发挥着极其重要的作用。
cloud-controller-manager 是指云控制器管理器, 一个 Kubernetes 控制平面组件, 嵌入了特定于云平台的控制逻辑。 云控制器管理器允许你将你的集群连接到云提供商的 API 之上, 并将与该云平台交互的组件同与你的集群交互的组件分离开来。