k8s社区架构
社区架构分层
生态系统
CI/CD、微服务、日志收集、持续监控、operator
接口层
k8s官方的库、工具、UI;可有外部的自有实现
kubectl helm dashboard ....
治理层
策略执行和自动化编排,是对于应用的可选层,不影响应用的执行
RABC HPA ....
应用层
部署和路由,k8s的业务功能
kube-proxy ingress ....
内核层
核心功能,最小特性集,类似于kernel,集群管理功能
API Server etcd ....
底层
容器运行时 网络插件 存储插件 镜像库 云提供商
控制器架构-list-watch机制
三层架构
底层
使用ETCD作为数据持久化存储与访问
中间层
API Server作为中间层接收所有对集群的访问,认证鉴权后将请求路由到正确位置(etcd或集群组件)
上层
kubectl、controller-manager、scheduler、kubelet,向apiserver发送请求,监控并调整集群状态至预期
流程
0:controller-manager发起对资源的监控,scheduler发起对未调度的pod的监控,kubelet发起对预调度到本地节点的pod的监控
1:kubectl发起对集群资源的更改请求,API Server认证鉴权返回结果,同时将该更改记录etcd
2:etcd完成数据记录后,上报资源更改事件,API Server通知事件,controller-manager定期list检测到资源更改请求,处理该请求,发起创建或销毁pod
3:scheduler定期list检测到pod未调度,进行多策略调度,更新pod按调度结果绑定node。
4:kubelet定期上查看并上报被调度到本node的pod的状况,执行生命周期动作

浙公网安备 33010602011771号