K8S架构设计
2023-11-08 15:26:49 0 举报
K8S架构及流程说明
作者其他创作
大纲/内容
container
container runtime
POD
Kube Scheduler---负责容器的编排工作,检查节点的资源状态,把POD调度到最合适的节点去运行
这四个组件都已被容器化,运行在集群的pod中,如下图
worker node 运行业务应用
container-runtime:是容器和镜像的实际使用者,在kubelet的指挥下创建容器,管理pod的生命周期。PS:由于k8s的定位是容器编排平台,所以没有限定container-runtime必须是docker,完全可以替换成任何符合标准的其他容器运行时,比如containerd、CRI-O等;我实验时用的就是containerd;详细的K8S集群部署流程可以参考这个文档:https://www.processon.com/view/649686f0cdbc5438d2ac9cf2
kubectl---客户端命令工具,操作集群节点
kubelet---是worker node的代理,负责管理worker相关的绝大部分操作,只有它能与apiserver通信,实现状态报告、命令下发、启停容器等功能
API Server---K8S系统的唯一入口
每个节点(node)上的kubelet会定期向apiserver上报节点状态,apiserver再存到etcd
firewalld
kubeproxy
worker node中的3个组件只有kube-proxy被容器化了,这是因为kubelet因为必须要管理整个节点,容器化会限制他的能力,所以它必须在container-runtime之外运行。
每个节点(node)上的kube-proxy实现了TCP/UDP反向代理,让容器对外提供稳定的服务
kubeproxy---node的网络代理,只负责管理容器的网络通信,就是为pod转发TCP/UDP包
kubelet
scheduler通过apiserver得到当前的节点状态,调度POD,然后apiserver下发命令,给某个node的kubelet,kubelet调用container-runtime启动容器
controller-manager也通过apiserver得到实时的节点状态,监控可能的异常情况,再使用相应的手段去调节恢复
Master主节点
etcd---高可用的分布式key-value数据库,用来持久化存储系统里各种资源对象和状态
Internet
整体的大致流程
Controller Manager---负责维护容器和节点等资源的状态,实现故障检测、服务迁移、应用伸缩等
worker node 运行业务应用
0 条评论
回复 删除
下一页