k8s创建启动、删除pod的过程

Pod 是 Kubernetes 集群中能够被创建和管理的最小部署单元,pod中可能部署一个或者多个容器,这些容器能够共享网络、存储以及 CPU、内存等资源

1.k8s创建pod的过程

在这里插入图片描述
    1).kubectl将创建pod的yml文件提交到master节点中的api server后,api server将yml数据存入etcd(类似数据库)
    2).master节点中的schedule通过list watch监听到etcd中有创建pod的请求后,查看到请求创建的pod,schedule寻找空闲的node,并且将pod绑定导此node中,然后apiserver会将此结果写入etcd
    3).当此node中的kubelet监听到有pod绑定过来,然后kubelet就开始通过docker创建启动容器,docker把创建的结果反馈给kubelet,最后api server将创建结果写入etcd
    4).通过kubectl get pod,获取pod,注意:pod一旦绑定到一个节点,pod将永远不会重新绑定到另一个节点

2.k8s删除pod的过程

    1).用户发出删除pod命令,此时pod被视为死亡状态,将pod标记为“Terminating”状态(这时候pod会有一个宽限时间30秒)
    2).kubelet监控到pod对象为“Terminating”状态的同时启动pod关闭过程
    3).endpoints控制器监控到pod对象关闭,将pod与service匹配的endpoints列表中删除,pod内对象的容器收到TERM信号
    4).当一切准备完毕后,kubelet请求api server 将此pod资源宽限期设置为0从而完成删除操作

3.pod的状态status

    1)Pending挂起:pod没有调度到节点上,可能还在下载镜像,容器还未启动
    2).Running运行中:pod已经绑定到一个node上,pod中的容器已经创建,有一个或者个容器已经运行
    3).Succeeded成功:Pod中所有的容器都被成功终止,并且不会被重启。
    4).Failed失败:Pod中的所有容器都已经终止了,并且至少有一个容器是因为失败终止。也就是说,容器以非0状态退出或者被系统终止
    5).Unknown未知:因为某些原因无法取得Pod状态,通常是因为与Pod所在node失去通信造成失联。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值