skaffold 是否尊重滚动更新?

Does skaffold respect rolling updates?

当使用 --force 选项时,skaffold 是否尊重滚动更新?当我用

执行 skaffold run --force
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 3

似乎从未发生过激增。

在另一个终端 window 我 运行 watch kubectl get pods 我从来没有看到我部署的副本数量超过 3。我怀疑这是因为 --force 标志,但我不确定。

在人们告诉我不要使用武力之前,请参阅https://github.com/GoogleContainerTools/skaffold/issues/3171。如果部署资源已经存在,Skaffold 会自动更改 运行-id,这会导致部署失败。话虽这么说,如果有办法告诉 skaffold 更新部署而不抱怨 运行-ids 不匹配,我很想听听。我不喜欢使用 --force.

编辑:

查看 skaffold 帮助我看到:

      --force=false: Recreate Kubernetes resources if necessary for deployment, warning: might cause downtime! (true by default for `skaffold dev`)

Recreate 这个词表明 RollingDeployment 策略可能没有得到尊重。

经过更多测试后,我可以确认使用 --force 会导致部署策略被忽略。为了解决我提到的 运行-id 问题,我

  1. -l skaffold.dev/run-id=test
  2. 进行了部队部署
  3. 在没有 --force 的情况下使用与上一步相同的 运行-id 进行了另一次部署。

当我这样做时,我看到了我预期的激增。