解决清理问题
本页面介绍了如何在使用 TRAFFIC_DIRECTOR
实现时解决 Cloud Service Mesh 托管式控制平面的问题。
清理合成服务
使用 TRAFFIC_DIRECTOR
控制平面实现时,Cloud Service Mesh 会创建合成 Kubernetes 服务以支持子集。这些服务都标记为 istio.io/owned-by:gsmconfig.gke.io
。
当您修改 Istio API 中的 discoverySelectors
以移除包含合成 Kubernetes 服务的命名空间时,Cloud Service Mesh 不会自动移除这些合成 Kubernetes 服务。
如需缓解此问题,您可以运行以下命令,以手动移除目标命名空间中的合成 Kubernetes 服务:
kubectl delete service -l istio.io/owned-by=gsmconfig.gke.io -n NAMESPACE
将 NAMESPACE 替换为您要清理的实际命名空间。
清理网络端点组注解
使用 TRAFFIC_DIRECTOR
控制平面实现时,Cloud Service Mesh 会通过向服务添加 cloud.google.com/neg
注解来创建网络端点组,以实现负载均衡。
当您修改 Istio API 中的 discoverySelectors
以移除包含 Kubernetes 服务的命名空间时,Cloud Service Mesh 不会自动移除这些网络端点组。
如需缓解此问题,您可以手动从目标命名空间中的服务中移除 cloud.google.com/neg
注解。
service_names=($(kubectl get service -n NAMESPACE -o jsonpath='{.items[*].metadata.name}'))
for service in "${service_names[@]}"; do
kubectl annotate service $service -n NAMESPACE cloud.google.com/neg-
done
将 NAMESPACE 替换为您要清理的实际命名空间。