
# 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](https://kubernetes.io/zh-cn/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec)。
  1. 使用kubectl命令行修改该Service的YAML。
     ```
     kubectl edit service test-svc
     ```
     
  
  2. 删除**"tolerate-unready-endpoints"** 注解，并spec中添加下列字段来替代该注解：
     ```
     publishNotReadyAddresses: true
     ```
     ![](https://support.huaweicloud.com/usermanual-cce-autopilot/zh-cn_image_0000002389599141.png "点击放大")
     
   
- **问题场景二： 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）](https://kubernetes.io/zh-cn/docs/concepts/services-networking/topology-aware-routing/)。
  1. 使用kubectl命令行修改该Service的YAML。
     ```
     kubectl edit service test-svc
     ```
     
  
  2. 删除**"service.kubernetes.io/topology-aware-hints"** 注解，并spec中添加**"service.kubernetes.io/topology-mode"** 注解进行替换。
     ![](https://support.huaweicloud.com/usermanual-cce-autopilot/zh-cn_image_0000002320116461.png "点击放大")
     
   
 
