gpt4 book ai didi

kubernetes - 错误 : selector does not match template labels

转载 作者:行者123 更新时间:2023-12-04 13:36:18 25 4
gpt4 key购买 nike

我的任务是为所有 deployments 添加一个名为“app”的标签, daemonsets , 和 cronjobs以便在我们的监控工具中更轻松地跨堆栈查询我们的应用程序。通过这种方式,我们可以构建使用单个选择器的仪表板,即 app。

为避免停机,我决定按以下步骤解决此问题:

  • 为开发、测试和阶段环境添加标签。
  • 为 prod env 添加标签。
  • 部署 (1)
  • 部署 (2)
  • 删除旧标签并更新 dev 服务以使用新标签。然后测试和部署。 ( 当前在此步骤 )
  • 对阶段重复 (5)。
  • 对产品重复 (5)。

  • 使用时 $ kubectl apply为了更新我已将“应用程序”标签添加到/替换为“应用程序”标签的“服务”标签的资源,我遇到了以下错误:

    Error from server (Invalid): error when applying patch: {longAssPatchWhichIWon'tIncludeButYaGetThePoint} to: &{0xc421b02f00 0xc420803650 default provisioning manifests/prod/provisioning-deployment.yaml 0xc 42000c6f8 3942200 false} for: "manifests/prod/provisioning-deployment.yaml": Deployment.apps "provisioning" is invalid: s pec.template.metadata.labels: Invalid value: map[string]string{"app":"provisioning", "component" :"marketplace"}: selector does not match template labels



    我需要一些关于它为什么会抛出这个错误的见解。

    最佳答案

    看来你有麻烦了。检查此部分:Label selector updates

    Note: In API version apps/v1, a Deployment’s label selector is immutable after it gets created.



    所以,这一行说你不能更新 selector创建部署后。除了 apps/v1beta1 之外的任何 API 版本都不能更改选择器和 extension/v1beta1 .引用: TestDeploymentSelectorImmutability .

    一种可能的解决方法可能是保留旧标签并在旧标签的同时添加新标签。这样,您就不必更新 selector .部署将使用旧标签选择 pod,但您的仪表板可以选择使用新标签。这可能不符合您的要求,但我看不到任何更好的方法。

    关于kubernetes - 错误 : selector does not match template labels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53304461/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com