Kubernetes主要组件之间的通信原理及创建Pod的过程

本文详细介绍了Kubernetes的核心组件,包括etcd、apiserver、controllermanager、scheduler、kubelet、Containerruntime和kube-proxy的功能及职责。同时,阐述了组件间的通信原理,以及创建Pod的典型流程,为读者全面理解Kubernetes的架构与运作机制提供了清晰的视角。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.Kubernetes主要由以下几个核心组件组成
1.etcd:保存了整个集群的状态
2.apiserver:提供了资源操作的唯一入口,并提供认证,授权,访问控制,API注册和发现等机制
3.controller manager:负责监听、维护集群的状态,比如故障检测,自动扩展,滚动更新等
4.scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
5.kubelet:负责维护容器的生命周期,同时也负责Volume和网络的管理
6.Container runtime:负责镜像管理以及Pod和容器的真正运行
7.kube-proxy:负责为Service提供Cluster内部的服务发现和负载均衡

二.组件之间的通信原理
1.apiserver负载etcd存储的所有操作,且只有apiserver才直接操作etcd集群
2.apiserver对内(集群中的其他组件)和对外(用户)提供统一的REST API,其他组件均通过apiserver进行通信
·controller manager、scheduler、kube-proxy和kubelet等均通过apiserver watch API监测资源变化情况,并对资源作相应的操作
·所有需要更新资源状态的操作均通过apiserver的REST API进行
3.apiserver也会直接调用kubelet API(如logs,exec,attach等)

四.典型创建Pod的流程在这里插入图片描述
1.用户通过REST API创建一个Pod
2.apiserver将其写入etcd
3.scheduler检测到未绑定Node的Pod,开始调度并更新Pod的Node绑定
4.kubelet检测到有新的Pod调度过来,通过container runtime运行该Pod
5.kubelet通过container runtime取到Pod状态,并更新到apiserver中

### Kubernetes 创建 Pod 的详细流程 #### 一、提交请求至 API Server 当用户通过 `kubectl` 提交了一个用于创建 Pod 的 YAML 文件时,该命令实际上会把文件中的配置发送给集群的入口——API Server。API Server 负责接收并处理所有的 REST 请求,它会对传来的数据执行一系列的安全措施,比如身份验证和权限校验等操作来保障系统的安全性[^2]。 #### 二、资源对象存储于 Etcd 中 一旦上述安全检查顺利完成,API Server 并不会立即着手构建新的 Pod 实体;相反地,其首要任务是将接收到的信息转换成一种内部使用的结构化形式(例如以 JSON 或者 YAML 表达的对象),随后将其持久化保存到键值数据库 Etcd 当中。这一步骤确保了即使发生意外情况也能恢复未完成的任务状态[^3]。 #### 三、调度器选取节点 紧接着,Scheduler 组件开始发挥作用。它依据预定策略挑选最合适的计算节点作为即将部署的目标位置,并向选定目标发出指示以便后续工作能够顺利开展。值得注意的是,在此之前 Scheduler 已经从 Etcd 获取到了待分配的工作负载详情以及当前可用资源状况等相关情报[^1]。 #### 四、Kubelet 执行实际创建工作 随着指定主机被确认下来之后,位于各台机器上的代理服务 Kubelet 收到来自控制平面的通知消息后便开始了真正的行动:下载镜像、准备必要的环境变量设置等一系列前置条件满足以后,最终调用 Docker Daemon 来实例化具体的容器实体。与此同时,为了保持与管理端之间的沟通顺畅无阻,Kubelet 还需定期汇报最新进展直至整个生命周期结束为止[^4]。 #### 五、CNI 插件负责网络连接建立 对于那些涉及到跨宿主机通信需求的应用场景而言,则还需要额外借助 CNI (Container Network Interface) 类型插件的帮助才能达成目的。这类工具通常会在新成员加入集群之时自动为其分配 IP 地址以及其他必要参数从而使得各个组成部分之间可以相互识别访问[^5]。 ```bash # 使用 kubectl 命令查看 pod 状态变化过程 $ kubectl get pods -w ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值