K8s废弃资源检查异常处理
检查项内容
检查集群是否存在对应版本已经废弃的资源。
解决方案
- 问题场景一: 1.25及以上集群中的Service存在废弃的annotation:tolerate-unready-endpoints
报错日志信息如下:
some check failed in cluster upgrade: this cluster has deprecated service list: map[test-svc] with deprecated annotation list [tolerate-unready-endpoints]
以上示例中,需要检查日志信息中所给出的Service(test-svc)是否存在"tolerate-unready-endpoints"的注解,这个注解表示Endpoints控制器是否应该继续为未准备好的Pod创建Endpoints。 如果Service中存在这个已废弃的注解,则将其去掉,并在对应的Service的spec中添加下列字段来替代该注解,详情请参见ServiceSpec:
publishNotReadyAddresses: true
- 问题场景二: 1.27及以上集群中的Service存在废弃的annotation:service.kubernetes.io/topology-aware-hints
报错日志信息如下:
some check failed in cluster upgrade: this cluster has deprecated service list: map[test-svc] with deprecated annotation list [service.kubernetes.io/topology-aware-hints]
以上示例中,需要检查日志信息中所给出的Service(test-svc)是否存在"service.kubernetes.io/topology-aware-hints"的注解,此注解曾用于在Service中启用拓扑感知提示(topology aware hints),而拓扑感知提示已经进行了更名,如果Service中存在这个已废弃的注解,需要将其去掉,并在对应的Service中用"service.kubernetes.io/topology-mode"的注解进行替换,详情请参见拓扑感知路由(topology aware routing)。