k8s_组件之间如何协同

k8s组件之间如何协同工作?

用一个用户创建一个Nginx服务的例子,

看各组件如何配合:

1、用户操作

执行kubectl create deployment nginx --image=nginx --replicas=2

(创建2个Nginx副本)。

2、API Server

接收命令,验证合法性后,

创建2个Nginx Pod的请求存入etcd

3、Controller Manager

其中的Deployment Controller发现etcd中记录了期望2个Nginx Pod

但当前实际数量为0,

于是创建对应的ReplicaSet(负责维护Pod数量)。

4、Scheduler

检测到有新的Pod需要创建(还没分配节点),

根据节点的资源情况(比如哪个节点CPU空闲多),

选择2个合适的节点

然后通过API Server更新Pod的分配节点信息到etcd。


1、Kubelet

每个节点的Kubelet会定期向API Server查询

“是否有分配给我的Pod”,

发现有Nginx Pod后,

调用容器运行时(比如Docker)拉取Nginx镜像,

启动2个容器。

2、Kube-proxy

当用户创建Servicekubectl expose deployment nginx --port=80)后,

Kube-proxy在每个节点上配置网络规则

确保外部请求能通过Service的IP:

端口转发到两个Nginx Pod

7、CoreDNS

为这个Service生成域名(比如nginx.default.svc.cluster.local),

其他Pod可以通过这个域名访问Nginx服务,

不用记Service的IP。

8、持续监控

Controller Manager会持续检查Pod数量是否为2,

若某个Pod崩溃,Kubelet重启失败后,

Controller Manager会通知Scheduler重新调度一个新Pod

etcd实时同步所有状态变更。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值