解决清理问题

本页面介绍了如何在使用 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 替换为您要清理的实际命名空间。