Kubernetes组件通信
Kubernetes多组件之间的通信原理为:
- API Server负责etcd存储的所有操作,且只有API Server才直接操作etcd集群
- API Server对内(集群中的其他组件)和对外(用户)提供统一的REST API,其他组件均通过API Server进行通信
- Controller Manager、Scheduler、Kube-proxy和Kubelet等均通过API Server watch API监测资源变化情况,并对资源做相应的操作
- 所有需要更新资源状态的操作均通过API Server的REST API进行
- API Server也会直接调用Kubelet API(如logs、exec、attach等),默认不校验Kubelet证书,但可以通过--kubelet-certificate-authority开启(而GKE通过SSH隧道保护它们之间的通信)
创建Pod的流程为:
- 用户通过REST API创建一个Pod
- API Server将其写入etcd
- Scheduler检测到未绑定Node的Pod,开始调度并更新Pod的Node绑定
- Kubelet检测到有新的Pod调度过来,通过Container Runtime运行该Pod
- Kubelet通过Container Runtime取到Pod状态,并更新到API Server中
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)