3.3 Deployment
一个 ReplicaSet 对象,其实就是由副本数目的定义和一个 Pod 模板组成的。不难发现,它的定义其实是 Deployment 的一个子集。Deployment 控制器实际操纵的正是这样的 ReplicaSet 对象,而不是 Pod 对象。
Deployment 与 ReplicaSet 以及 Pod 的关系是怎样的呢?Deployment 与它的 ReplicaSet 以及 Pod 的关系,实际上是一种“层层控制”的关系。ReplicaSet 负责通过“控制器模式”,保证系统中 Pod 的个数永远等于指定的个数(比如,3 个)。这也正是 Deployment 只允许容器的 restartPolicy=Always 的主要原因:只有在容器能保证自己始终是 Running 状态的前提下,ReplicaSet 调整 Pod 的个数才有意义。而在此基础上,Deployment 同样通过“控制器模式”,来操作 ReplicaSet 的个数和属性,进而实现“水平扩展 / 收缩”和“滚动更新”这两个编排动作。
通过 Deployment 重新部署 Flask 应用:
kubectl apply -f deployments/hello-deployment.yaml
kubectl get deployment
kubectl describe deployment/hello
升级Flask 应用,查看滚动升级的过程:
kubectl apply -f deployments/hello-deployment.yaml
kubectl get deployment
当前内容版权归 findsec-cn 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 findsec-cn .