Desinstale o Cloud Service Mesh
Esta página explica como desinstalar o Cloud Service Mesh se estiver a usar as APIs Istio. Se estiver a usar as APIs Compute Engine, não são necessários passos. Consulte a vista geral do Cloud Service Mesh para compreender as diferenças.
Se seguir estas instruções para desinstalar o Cloud Service Mesh, remove todas as configurações, independentemente do tipo de plano de controlo (no cluster ou gerido). Se estiver a fazer uma migração de in-cluster para gerido, siga o guia de migração em alternativa.
Desinstale o Cloud Service Mesh
Use os seguintes comandos para desinstalar todos os componentes do Cloud Service Mesh. Estes comandos também eliminam o espaço de nomes istio-system
e todas as definições de recursos personalizados (CRDs), incluindo quaisquer CRDs que tenha aplicado.
Para evitar a interrupção do tráfego de aplicações:
- Mude todas as políticas de mTLS STRICT para PERMISSIVE.
- Remova todas as AuthorizationPolicy que possam bloquear o tráfego.
Desative a gestão automática neste cluster (quer a tenha aplicado diretamente ou através da configuração predefinida da frota):
gcloud container fleet mesh update \ --management manual \ --memberships MEMBERSHIP_NAME \ --project FLEET_PROJECT_ID \ --location MEMBERSHIP_LOCATION
Substitua o seguinte:
- MEMBERSHIP_NAME é o nome da associação apresentado quando validou que o seu cluster estava registado na frota.
- MEMBERSHIP_LOCATION é a localização da sua subscrição (uma região ou
global
).
Desative a injeção automática de sidecar nos seus espaços de nomes, se estiver ativada. Execute o seguinte comando para apresentar as etiquetas do espaço de nomes:
kubectl get namespace YOUR_NAMESPACE --show-labels
O resultado é semelhante ao seguinte:
NAME STATUS AGE LABELS demo Active 4d17h istio.io/rev=asm-181-5
Se vir
istio.io/rev=
no resultado na colunaLABELS
, remova-o:kubectl label namespace YOUR_NAMESPACE istio.io/rev-
Se vir
istio-injection
no resultado na colunaLABELS
, remova-o:kubectl label namespace YOUR_NAMESPACE istio-injection-
Se não vir as etiquetas
istio.io/rev
nemistio-injection
, significa que a injeção automática não foi ativada no espaço de nomes.Reinicie as cargas de trabalho com sidecars injetados para remover os proxies.
Se estiver a usar o Cloud Service Mesh gerido, verifique que implementação do plano de controlo tem no seu cluster. Isto ajuda a eliminar os recursos relevantes nos passos seguintes.
Se estiver a usar o Cloud Service Mesh gerido, 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
Elimine webhooks do seu cluster, se existirem.
Cloud Service Mesh no cluster
Elimine o
validatingwebhooksconfiguration
e omutatingwebhookconfiguration
.kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot,istio.io/owned-by!=mesh.googleapis.com
Managed Cloud Service Mesh
A. Eliminar
validatingwebhooksconfiguration
.kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
B. Elimine toda a atividade de
mutatingwebhookconfiguration
.kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL
Quando todas as cargas de trabalho estiverem disponíveis e não forem observados proxies, pode eliminar em segurança o plano de controlo no cluster para parar a faturação.
Para remover o plano de controlo no cluster, execute o seguinte comando:
istioctl uninstall --purge
Se não existirem outros planos de controlo, pode eliminar o espaço de nomes para se livrar de todos os recursos da Cloud Service Mesh.
istio-system
Caso contrário, elimine os serviços correspondentes às revisões da Cloud Service Mesh. Isto evita a eliminação de recursos partilhados, como CRDs.Elimine os espaços de nomes
istio-system
easm-system
:kubectl delete namespace istio-system asm-system --ignore-not-found=true
Verifique se as eliminações foram bem-sucedidas:
kubectl get ns
O resultado deve indicar um estado
Terminating
e ser devolvido conforme apresentado. Caso contrário, pode ter de eliminar manualmente todos os recursos restantes nos espaços de nomes e tentar novamente.NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m
Se vai eliminar os clusters ou já os eliminou, certifique-se de que cada cluster está anulado no seu conjunto de veículos.
Se ativou a configuração predefinida da frota do Cloud Service Mesh gerido e quiser desativá-la para clusters futuros, desative-a. Pode ignorar este passo se estiver a desinstalar apenas de um único cluster.
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_ID
Em que FLEET_PROJECT_ID é o ID do seu projeto de anfitrião da frota.
Se planeia deixar de usar o Cloud Service Mesh ao nível da frota, desative a funcionalidade de service mesh para o projeto anfitrião da frota.
gcloud container hub mesh disable --project FLEET_PROJECT_ID
Em que FLEET_PROJECT_ID é o ID do seu projeto de anfitrião da frota.
Se ativou a malha de serviços do Google Cloud gerida, verifique e elimine os recursos geridos, se estiverem presentes:
Elimine a implementação
mdp-controller
:kubectl delete deployment mdp-controller -n kube-system
Se tiver a implementação do
TRAFFIC_DIRECTOR
plano de controlo, limpe os recursos de verificação de estado transparente. Normalmente, estas são removidas automaticamente, mas pode certificar-se de que são limpas fazendo o seguinte:Elimine o
snk
daemonset.kubectl delete daemonset snk -n kube-system
Elimine a regra de firewall.
gcloud compute firewall-rules delete gke-csm-thc-FIRST_8_CHARS_OF_CLUSTER_ID
Substitua o seguinte:
- FIRST_8_CHARS_OF_CLUSTER_ID são os primeiros 8 carateres do ID do cluster para o seu cluster específico.
Verifique se o configmap
istio-cni-plugin-config
está presente:kubectl get configmap istio-cni-plugin-config -n kube-system
Se estiver presente, elimine o configmap
istio-cni-plugin-config
:kubectl delete configmap istio-cni-plugin-config -n kube-system
Elimine o daemonset
istio-cni-node
:kubectl delete daemonset istio-cni-node -n kube-system
Se estiver a desinstalar o Cloud Service Mesh gerido, contacte o apoio técnico para garantir que todos os recursosGoogle Cloud são limpos. O espaço de nomes
istio-system
e os mapas de configuração também podem continuar a ser recriados se não seguir este passo.
Após a conclusão destes passos, todos os componentes do Cloud Service Mesh, incluindo proxies, autoridades de certificação no cluster e funções e associações de RBAC, são removidos sistematicamente do cluster. Durante o processo de instalação, é concedido à conta de serviço pertencente à Google as autorizações necessárias para estabelecer os recursos da malha de serviços no cluster. Estas instruções de desinstalação não revogam estas autorizações, o que permite uma reativação perfeita do Cloud Service Mesh no futuro.