【问题标题】:Set command doesn't work for the deployment update in Azure Kubernetes clusterSet 命令不适用于 Azure Kubernetes 群集中的部署更新
【发布时间】:2018-12-19 16:45:13
【问题描述】:

我正在使用 Azure DevOps 管道来更新我们在 Azure 的 K8s 集群中的部署。直到昨天之前它一直运行良好,因为出于某种原因,集群中的 Pod 仍处于以前的状态。我可以看到该图像已在 ACR(容器注册表)中成功更新,并且具有“最新”标签。但是,发布管道似乎没有做任何有用的事情。我在任务中使用“set”命令来更新 Pod(在 Kubernetes 文档和备忘单 here 中有很好的描述)

这是从日志中提取的命令示例: kubectl set image deployments/identityserver identityserver='myacr'/identityserver:latest -n identityserver-dev

正如它所表明的,我正在从 ACR 获取最新图像并尝试推出更新。它执行良好(在 cmd 和 Azure DevOps 中)。没有错误,但 Pod 仍然不受影响。我错过了文档中的某些内容吗?我应该向微软提出要求吗?

【问题讨论】:

    标签: azure azure-devops azure-aks azure-container-registry


    【解决方案1】:

    为什么图片名称中有'?另外,如果图片上已经有latestlatest 将不起作用,您需要具体https://github.com/kubernetes/kubernetes/issues/33664

    这不是 Azure 问题

    【讨论】:

    • 这不是图像名称。它应该是容器注册表名称。我刚刚将其删除,替换为“myacr”,如果它具有误导性,请见谅。关于“最新”并没有完全了解它在此之前的工作方式?
    • 您需要修改部署清单中的某些内容以触发重新部署,例如注释或标签,否则它将无法工作并且永远不会工作
    • 嗯,这部分解释了为什么它之前工作,因为我正在更新清单和代码......虽然,它听起来不对,是吗? )
    • 不确定什么听起来不对 :) 这是一个已知的 kubernetes“功能”。我已经告诉你如何解决这个问题,你能确认它现在可以工作吗?
    • 好吧,删除 Pod 有帮助,但它看起来不像是自动化
    【解决方案2】:

    请查看here 对 SO 上类似问题的回答,了解为什么在部署规范中使用 :latest 标记不是一个好选择,以及提供的解决方法。

    【讨论】:

      猜你喜欢
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 2020-01-15
      相关资源
      最近更新 更多