K8s:创建 Deployment类型的Pod的过程 ?
K8s:创建 Deployment类型的Pod的过程 ?
创建一个Deployment类型的Pod的过程与创建单个Pod的过程有所不同,因为Deployment是一种更高级别的抽象,用于管理Pod的生命周期和扩展。以下是创建Deployment的过程:
1、提交Deployment定义:
用户通过kubectl命令行工具或者调用API Server接口,提交一个包含Deployment配置信息的YAML或JSON文件。这个配置文件详细描述了Deployment的元数据(如名称、标签等)、Pod模板、副本数、选择器、更新策略等。
2、接收并验证请求:
Kubernetes API Server接收到创建Deployment的请求后,会进行一系列的验证,确保提交的资源配置是有效的,并且符合集群的安全策略和准入控制规则。
3、持久化资源状态:
当配置信息验证成功后,API Server将Deployment的规格信息写入etcd分布式存储系统中,这样集群的所有组件都能获取到最新的Deployment创建请求。
4、创建ReplicaSet:
Deployment控制器监听etcd中的事件,当发现新的Deployment时,它会创建一个ReplicaSet来确保有指定数量的Pod副本在运行。
5、调度Pod:
RelicaSet根据Pod模板中的规格信息,为每个Pod副本选择合适的Node节点,并在etcd中创建Pod对象。
6、通知kubelet:
API Server会通知目标节点上的kubelet代理,告诉它应该在其管理的节点上启动新的Pod。
7、kubelet初始化Pod:
kubelet接收到指令后,在本地执行Pod创建流程,包括检查所需镜像、创建命名空间和网络、启动容器、设置环境变量和挂载卷等,并监控容器的状态。
8、容器运行与监控:
容器运行后,kubelet持续监控其生命周期和资源使用情况。如果容器失败或不符合预期状态,kubelet会按照Pod定义中的重启策略进行处理。
9、更新Pod状态:
kubelet不断向API Server报告Pod和容器的最新状态。Deployment控制器会根据这些状态信息来管理Pod的副本数和健康状态。
10、自动扩展(如果配置了HPA):
如果Deployment配置了水平自动扩展(Horizontal Pod Autoscaler,HPA),当Pod的CPU或内存使用率超过设定的阈值时,HPA会自动增加或减少Pod的副本数。
11、滚动更新(如果配置了RollingUpdate):
当用户更新Deployment的Pod模板(例如更新镜像)时,Deployment控制器会执行滚动更新,逐步替换旧版本的Pod,以确保服务的连续性。

浙公网安备 33010602011771号