Como resolver problemas de limpeza

Esta página explica como resolver problemas com o plano de controle gerenciado do Cloud Service Mesh ao usar a implementação TRAFFIC_DIRECTOR.

Limpar serviços sintéticos

Ao usar a implementação do plano de controle TRAFFIC_DIRECTOR, o Cloud Service Mesh cria serviços Kubernetes sintéticos para oferecer suporte ao subconjunto. Esses serviços são marcados com istio.io/owned-by:gsmconfig.gke.io.

Quando você modifica discoverySelectors na API do Istio para remover um namespace que contém serviços sintéticos do Kubernetes, a Cloud Service Mesh não remove automaticamente esses serviços sintéticos do Kubernetes.

Para minimizar esse problema, remova manualmente os serviços do Kubernetes sintéticos nos namespaces de destino executando o seguinte comando:

kubectl delete service -l istio.io/owned-by=gsmconfig.gke.io -n NAMESPACE

Substitua NAMESPACE pelo namespace que você quer limpar.

Limpar anotações de grupos de endpoints de rede

Ao usar a implementação do plano de controle TRAFFIC_DIRECTOR, a Cloud Service Mesh cria grupos de endpoints de rede adicionando anotações cloud.google.com/neg aos serviços para balanceamento de carga.

Quando você modifica discoverySelectors na API Istio para remover um namespace que contém serviços do Kubernetes, o Cloud Service Mesh não remove automaticamente esses grupos de endpoints de rede.

Para atenuar esse problema, remova manualmente as anotações cloud.google.com/neg dos serviços nos namespaces de destino.

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

Substitua NAMESPACE pelo namespace que você quer limpar.