Desinstalar o Cloud Service Mesh
Nesta página, explicamos como desinstalar o Cloud Service Mesh.
Desinstalar o Cloud Service Mesh
Use os comandos a seguir 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
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-labelsO 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, remova todos os recursos
controlplanerevision
no cluster:kubectl delete controlplanerevision
RELEASE_CHANNEL -n istio-systemEm que RELEASE_CHANNEL é o canal de lançamento provisionado, como
asm-managed
,asm-managed-rapid
ouasm-managed-stable
.Exclua os webhooks do cluster, se houver.
Exclua
validatingwebhooksconfiguration
emutatingwebhookconfiguration
.kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot
A. Exclua
validatingwebhooksconfiguration
:kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
B. Exclua
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. Se você implantou um plano de controle gerenciado, ele será excluído automaticamente com a etapa anterior.
Para remover o plano de controle no cluster, execute o comando abaixo:
istioctl x uninstall --purge
Se não houver outros planos de controle, exclua o namespace
istio-system
para eliminar todos os recursos do Cloud Service Mesh. Caso contrário, exclua os 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ê tiver ativado a configuração padrão da frota do Cloud Service Mesh gerenciado e quer desativá-la para clusters futuros, faça isso. Pule esta etapa se você estiver desinstalando apenas de um 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ê estiver usando o Cloud Service Mesh gerenciado, exclua a implantação
mdp-controller
:kubectl delete deployment mdp-controller -n kube-system
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
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, uma conta de serviço do Google recebe as permissões necessárias para estabelecer os recursos da Service Mesh no cluster. Essas instruções de desinstalação não revogam essas permissões, permitindo uma reativação perfeita do Cloud Service Mesh no futuro.