根据滚动更新策略应用是否有效?

Does apply works according to the rolling update policy?

我知道有几种执行部署滚动更新的方法。但是kubectl apply -f deployment.yaml还是kubectl apply -k ...根据新版deployment或者旧版deployment的滚动更新策略来更新deployment?

是的,有一个注意事项:

Note: A Deployment's rollout is triggered if and only if the Deployment's Pod template (that is, .spec.template) is changed, for example if the labels or container images of the template are updated. Other updates, such as scaling the Deployment, do not trigger a rollout.

参考:https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#updating-a-deployment

例如,您可以在更新 nginx 映像和 运行 kubectl apply -f nginx-deploy.yml :

后看到部署更新的事件部分
...
NewReplicaSet:   nginx-deployment-559d658b74 (3/3 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  112s  deployment-controller  Scaled up replica set nginx-deployment-66b6c48dd5 to 3
  Normal  ScalingReplicaSet  44s   deployment-controller  Scaled up replica set nginx-deployment-559d658b74 to 1
  Normal  ScalingReplicaSet  20s   deployment-controller  Scaled down replica set nginx-deployment-66b6c48dd5 to 2
  Normal  ScalingReplicaSet  20s   deployment-controller  Scaled up replica set nginx-deployment-559d658b74 to 2
  Normal  ScalingReplicaSet  19s   deployment-controller  Scaled down replica set nginx-deployment-66b6c48dd5 to 1
  Normal  ScalingReplicaSet  19s   deployment-controller  Scaled up replica set nginx-deployment-559d658b74 to 3
  Normal  ScalingReplicaSet  18s   deployment-controller  Scaled down replica set nginx-deployment-66b6c48dd5 to 0
$ kubectl get deploy
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     3            3           114s