Desinstalar o Cloud Service Mesh
Nesta página, explicamos como desinstalar o Cloud Service Mesh se você estiver usando as APIs Istio. Se você usa APIs do Compute Engine, nenhuma etapa é necessários. Consulte a Visão geral do Cloud Service Mesh para entender as diferenças.
Desinstalar o Cloud Service Mesh
Use os seguintes comandos para desinstalar todos os componentes do Cloud Service Mesh. Esses
comandos também excluem o namespace istio-system
e todas as definições de recursos
personalizados (CRDs, na sigla em inglês), incluindo
todos os CRDs que você aplicou.
Para evitar a interrupção do tráfego de aplicativos:
- Faça o downgrade de qualquer política STRICT mTLS para PERMISSIVE.
- Remova qualquer AuthorizationPolicy que possa bloquear o tráfego.
Desative o gerenciamento automático neste cluster (se você o aplicou diretamente ou usando a configuração padrão da frota):
gcloud container fleet mesh update \ --management manual \ --memberships MEMBERSHIP_NAME \ --project FLEET_PROJECT_ID \ --location MEMBERSHIP_LOCATION
Substitua:
- MEMBERSHIP_NAME é o nome da assinatura listado quando você verificou se o cluster foi registrado na frota.
- MEMBERSHIP_LOCATION é o local da sua assinatura (ou
uma região ou
global
).
Desative a injeção automática de sidecar nos namespaces, se estiver ativada. Execute o seguinte comando para exibir rótulos de namespace:
kubectl get namespace YOUR_NAMESPACE --show-labels
O resultado será assim:
NAME STATUS AGE LABELS demo Active 4d17h istio.io/rev=asm-181-5
Se você vir
istio.io/rev=
na saída na colunaLABELS
, remova-a:kubectl label namespace YOUR_NAMESPACE istio.io/rev-
Se você vir
istio-injection
na saída na colunaLABELS
, remova-a:kubectl label namespace YOUR_NAMESPACE istio-injection-
Se você não vir os rótulos
istio.io/rev
ouistio-injection
, a injeção automática não foi ativada no namespace.Reinicie as cargas de trabalho que tenham arquivos secundários injetados para remover os proxies.
Se você estiver usando o Cloud Service Mesh gerenciado, verifique qual implementação do plano de controle você tem no cluster. Isso vai ajudar a excluir recursos relevantes em outras etapas.
Se você estiver usando o Cloud Service Mesh gerenciado, remova todos os
controlplanerevision
recursos no cluster:kubectl delete controlplanerevision asm-managed asm-managed-rapid asm-managed-stable -n istio-system --ignore-not-found=true
Exclua os webhooks do cluster, se houver.
Cloud Service Mesh no cluster
Exclua
validatingwebhooksconfiguration
emutatingwebhookconfiguration
.kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot
Cloud Service Mesh gerenciado
A. Exclua
validatingwebhooksconfiguration
:kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
B. Excluir todos os
mutatingwebhookconfiguration
.kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL
Depois que todas as cargas de trabalho aparecerem e nenhum proxy for observado, será possível excluir com segurança o plano de controle no clusterpara interromper o faturamento.
Para remover o plano de controle no cluster, execute o seguinte comando:
istioctl uninstall --purge
Se não houver outros planos de controle, exclua o
istio-system
para se livrar de todos os recursos do Cloud Service Mesh. Caso contrário, exclua o serviços correspondentes às revisões do Cloud Service Mesh. Isso evita a exclusão de recursos compartilhados, como CRDs.Exclua os namespaces
istio-system
easm-system
:kubectl delete namespace istio-system asm-system --ignore-not-found=true
Verifique se as exclusões foram feitas:
kubectl get ns
A saída indicará um estado
Terminating
e retornará conforme mostrado. Caso contrário, talvez seja necessário excluir manualmente os recursos restantes nos namespaces e tentar novamente.NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m
Se você excluir ou já tiver excluído seus clusters, verifique se cada cluster está desregistrado da frota.
Se você ativou a configuração padrão da frota do Cloud Service Mesh gerenciada e quiser desativá-lo para clusters futuros, desative-o. Você pode pular esta etapa se estiver desinstalando apenas de um único cluster.
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_ID
FLEET_PROJECT_ID é o ID do projeto host da frota.
Se você ativou o Cloud Service Mesh gerenciado, verifique e exclua os recursos gerenciados se eles apresentarem:
Exclua a implantação
mdp-controller
:kubectl delete deployment mdp-controller -n kube-system
Se você tiver a implementação de plano de controle
TRAFFIC_DIRECTOR
, limpe os recursos de verificação de integridade transparente. Normalmente, eles são removidos automaticamente, mas é possível garantir que eles sejam limpos fazendo o seguinte:Exclua o daemonset
snk
.kubectl delete daemonset snk -n kube-system
Exclua a regra de firewall.
gcloud compute firewall-rules delete gke-csm-thc-FIRST_8_CHARS_OF_CLUSTER_ID
Substitua:
- FIRST_8_CHARS_OF_CLUSTER_ID são os oito primeiros caracteres do ID do cluster específico.
Verifique se o configmap
istio-cni-plugin-config
está presente:kubectl get configmap istio-cni-plugin-config -n kube-system
Se presente, exclua o configmap
istio-cni-plugin-config
:kubectl delete configmap istio-cni-plugin-config -n kube-system
Exclua o DaemonSet
istio-cni-node
:kubectl delete daemonset istio-cni-node -n kube-system
Se você estiver desinstalando o Cloud Service Mesh gerenciado e continuar mantendo cluster, entre em contato com o Suporte para garantir que todas os recursos do Google Cloud são limpos. O namespace
istio-system
e os mapas de configuração também podem continuar sendo recriados se você não seguir esta etapa.
Após a conclusão dessas etapas, todos os componentes do Cloud Service Mesh, incluindo proxies, autoridades de certificado no cluster e funções e vinculações do RBAC, são sistematicamente removidos do cluster. Durante o processo de instalação, um A conta de serviço do Google recebe as permissões necessárias para estabelecer os recursos da malha de serviço no cluster. Estas instruções de desinstalação não revoguem essas permissões, o que permite a reativação perfeita de Cloud Service Mesh no futuro.