【发布时间】:2019-04-17 16:05:59
【问题描述】:
我的任务是为所有deployments、daemonsets 和cronjobs 添加一个名为“app”的标签,以便更轻松地在我们的监控工具中跨堆栈查询我们的应用程序。这样,我们可以构建使用单个选择器的仪表板,即应用程序。
为避免停机,我决定通过以下步骤解决此问题:
- 为开发、测试和暂存环境添加标签。
- 为产品环境添加标签。
- 部署 (1)
- 部署 (2)
- 删除旧标签并更新开发服务以使用新标签。然后测试和部署。 (目前在这一步)
- 对阶段重复 (5)。
- 对产品重复 (5)。
当使用$ kubectl apply 更新资源时,我已将“app”标签添加到/替换“服务”标签与“app”标签到,我遇到以下错误:
来自服务器的错误(无效):应用补丁时出错: {longAssPatchWhichIWon'tIncludeButYaGetThePoint} 到:&{0xc421b02f00 0xc420803650 默认配置 manifests/prod/provisioning-deployment.yaml 0xc 42000c6f8 3942200 false} 为:“manifests/prod/provisioning-deployment.yaml”: Deployment.apps“配置”无效:s pec.template.metadata.labels:无效值: 地图[字符串]字符串{“应用程序”:“配置”,“组件”:“市场”}:
selector与模板不匹配labels
我需要一些关于它为什么抛出这个错误的见解。
【问题讨论】:
-
你能分享部署的 yaml 吗?快速提醒一下,您部署的
spec.selector必须与spec.template.metadata.labels的标签匹配。 -
@EmruzHossain 我明白,但即使在更新之后,我仍然收到同样的错误。我已经包含了我的 .yaml 文件。
-
您应该在问题描述中插入代码或清单或类似内容,而不是通过链接插入它们
-
更正
spec.selector.matchLabels、spec.selector.matchLabels.app和spec.selector.matchLabels.component中的缩进。您使用了 4 个空格而不是 2 个空格。
标签: kubernetes yaml