所有Pod的app和version标签是否都相等
问题描述
Service关联的所有Pod的app和version标签必须都相等。app标签在流量监控中用于流量的跟踪,version标签在灰度发布中用于区分不同版本。如果存在app或version标签不相等的Pod,则报此异常。
修复指导
Pod标签配置在Deployment的spec.template.metadata.labels中,建议配置为:
labels: app: {serviceName} version: v1
修改多个Pod标签为相等的操作方法如下:
- 查看Service选择器(spec.selector)配置的标签。
kubectl get svc {serviceName} -o yaml
例如,标签是app: ratings和release: istio-bookinfo。
- 根据标签查找Service关联的Pod。
kubectl get pod -n {namespace} -l app=ratings,release=istio-bookinfo
{namespace}和Service的namespace一致。
- 根据Pod名称,找到其关联的工作负载。
kubectl get deployment {deploymentName} -n {namespace}
- 一般Pod名称格式为{deploymentName}-{随机字符串}-{随机字符串}。
- 如果根据Pod名称未查询到工作负载,可能是因为ReplicaSet有残留,需要将其删除。
- 请参考修复指导修改工作负载中Pod的app和version标签。