目录
11.简述 Kubernetes 集群相关组件?
12.简述 Kubernetes Rc 的机制?
Kubernetes Master控制组件,调度管理整个系统(集群),包含如下组件:
(1)Kubernetes APl Server:
作为 Kubernetes 系统的入口,其封装了核心对象的增删改查操作,以 RESTfuL API 接口方式提供给外部客户和内部组件调用,集群内各个功能模块之间数据交互和通信的中心枢纽。
(2)Kubernetes Scheduler:
为新建立的 Pod 进行节点(node)选择(即分配机器)负责集群的资源调度。
(3)Kubernetes Controller:
负责执行各种控制器,目前已经提供了很多控制器来保证 Kubernetes 的正常运行。
(4)Replication Controller:
管理维护 Replication Controller,关联 Replication Controller 和 Pod,保证 Replication Controller 定义的副本数量与实际运行 Pod 数量一致。
(5)Node Controller:
管理维护 Node,定期检查 Node的健康状态,标识出(失效 / 未失效)的 Node 节点。
(6)Namespace Controller:
管理维护 Namespace,定期清理无效的 Namespace,包括 Namesapce下的 API 对象,比如 Pod、Service 等。
(7)Service Controller:
管理维护 Service,提供负载以及服务代理。
(8)EndPoints Controller:
管理维护 Endpoints,关联 Service 和 Pod,创建 Endpoints 为 Service 的后端,当 Pod 发生变化时,实时更新Endpoints。
(9)Service Account Controller:
管理维护 Service Account,为每个 Namespace 创建默认的 Service Account,同时为 Service Account 创建 Service Account Secret。
(10)Persistent Volume Controller:
管理维护 Persistent Volume 和 Persistent Volume Claim,为新的 Persistent Volume Claim 分配 Persistent Volume 进行绑定,为释放的 Persistent Volume 执行清理回收。
(11)Daemon Set Controller:
管理维护 Daemon Set,负责创建 Daemon Pod 保证指定的 Node 上正常的运行 Daemon Pod。
(12)Deployment Controller:
管理维护 Deployment,关联 Deployment 和 Replication Controller,保证运行指定数量的 Pod。当 Deployment 更新时控制实现 Replication Controller 和 Pod 的更新。
(13)Job Controller:
管理维护 Job,为 Jod 创建一次性任务 Pod,保证完成 Job 指定完成的任务数目。
(14)Pod Autoscaler Controller:
实现 Pod 的自动伸缩,定时获取监控数据,进行策略匹配,当满足条件时执行 Pod 的伸缩动作。
- Replication Controller 用来管理 Pod 的副本,保证集群中存在指定数量的 Pod 副本。
- 当定义了 RC 并提交至 Kubernetes 集群中之后,Master 节点上的 Controller Manager 组件获悉,并同时巡检系统中当前存活的目标 Pod,并确保目标 Pod 实例的数量刚好等于此 RC 的期望值,若存在过多的 Pod 副本在运行,系统会停止一些 Pod,反之则自动创建一些 Pod。