所有Pod是否都配置了app和version标签
问题描述
Service关联的所有Pod都必须配置app和version标签。app标签在流量监控中用于流量的跟踪,version标签在灰度发布中用于区分不同版本。如果存在未配置app或version标签的Pod,则报此异常。
修复指导
Pod标签配置在Deployment的spec.template.metadata.labels中,建议配置为:
labels: app: {serviceName} version: v1
修改或删除Deployment会触发Pod滚动升级,可能会导致业务短暂中断,请根据业务场景选择适当的时间修改。
- 复制原有工作负载配置,保存为YAML文件。
kubectl get deployment {deploymentName} -n {namespace} -o yaml > {deploymentName}-deployment.yaml
例如:
kubectl get deployment productpage -n default -o yaml > productpage-deployment.yaml
- 修改productpage-deployment.yaml内容,如果没有app和version,需要添加。app的值建议与Service名称一致,version建议为v1。
- 删除原工作负载。
kubectl delete deployment {oldDeploymentName} -n {namespace}
- 应用新的工作负载配置。
kubectl apply -f productpage-deployment.yaml