首页 > 解决方案 > skaffold 是否尊重滚动更新?

问题描述

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

  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 3

似乎从未发生过激增。

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

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

编辑:

看着 skaffold 帮助我看到:

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

这个Recreate词表明 RollingDeployment 策略可能不受尊重。

标签: kubernetesskaffold

解决方案


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

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

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


推荐阅读