(我认为所有事情都是Kubernetes的新秀。)
我知道kubectl create -f myDeployment.yaml
会将我的部署规范发送到要实现的集群,如果它说要启动其包含的pod模板的三个副本,那么Kubernetes将开始启动三个pod。
我想知道:是否存在Kubernetes概念或实践以某种方式上传部署以供稍后参考,然后再“激活”它?也许比如说,将replicas
从零改为某个正数?如果这不是一个有意义的问题,或者这不是思考事物的正确方法,我也很感激指点。
答案 0 :(得分:2)
我认为你的想法不会与Kubernetes合作。首先,除了将replicas
设置为0
之外,没有办法“暂停”部署或任何其他ReplicationController或ReplicaSet,如上所述。
下一个问题是,您从apiserver获得的YAML与您创建的不同。控制器管理器添加一些注释,默认值和状态。因此很难以这种方式验证部署。
IMO验证部署的更好方法是将它们添加到版本控制系统并对其审查YAML文件。然后,您可以使用kubectl apply -f myDeployment.yaml
在apiserver上创建或更新。如果部署在语法方面是错误的,那么kubectl
会抱怨它,您可以相应地修补部署。这也简化了部署的更新过程。
答案 1 :(得分:0)
部署可以暂停,请参阅https://kubernetes.io/docs/user-guide/deployments/#pausing-and-resuming-a-deployment,或查看kubectl rollout pause -h
的信息。
您可以调整已暂停部署的副本,但对pod模板的更改不会触发推出。如果部署在推出过程中暂停,则在您恢复之前它将不会继续。