Desinstalar o Cloud Service Mesh gerenciado
Nesta página, explicamos como desinstalar o Cloud Service Mesh gerenciado. Se você estiver desinstalando o Cloud Service Mesh no cluster, siga o guia de desinstalação no cluster.
Se você estiver usando uma configuração legada com vários planos de controle provisionados, seguir estas instruções vai remover todos eles.
Os planos de controle gerenciados por asmcli não são compatíveis com a desinstalação, mas
clusters com planos de controle gerenciados por asmcli --managed ou pela API do mesh
são compatíveis. Se você não tiver certeza sobre o plano de controle, execute o seguinte comando:
kubectl get controlplanerevisions -n istio-system -l 'app.kubernetes.io/created-by!=asmcli'
A desinstalação é compatível se algum item estiver listado na saída.
Desinstalar o Cloud Service Mesh
Use os comandos a seguir para desinstalar todos os componentes do Cloud Service Mesh.
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 recurso de vários clusters se houver outros clusters executando a descoberta de endpoints no cluster que você está desinstalando.
kubectl patch configmap/asm-options -n istio-system --type merge -p '{"data":{"multicluster_mode":"manual"}}'Encontre e exclua os secrets que precisam de limpeza:
kubectl get secrets -n istio-system -l istio/multiCluster=truekubectl delete secret SECRET_NAMEEm que SECRET_NAME é o nome do secret. Repita essa etapa para cada secret listado.
Desative a injeção automática de sidecar nos namespaces, se estiver ativada. Execute o seguinte comando para mostrar os rótulos de namespace:
kubectl get namespace YOUR_NAMESPACE --show-labelsO resultado será o seguinte:
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-injectionna saída na colunaLABELS, remova-a:kubectl label namespace YOUR_NAMESPACE istio-injection-Se você não vir os rótulos
istio.io/revouistio-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.
Verifique se não há proxies conectados ao plano de controle gerenciado:
kubectl get pods --all-namespaces -o json | jq -r ' .items[] | select( .spec.containers[].env[]? | select(.name == "PROXY_CONFIG" and (.value | contains("\"discoveryAddress\":\"meshconfig.googleapis.com:443\""))) ) | "\(.metadata.namespace)\t\(.metadata.name)" 'Atualize o gerenciamento de especificação de associação do recurso de malha para
not-installed:gcloud alpha container fleet mesh update \ --project FLEET_PROJECT_ID \ --memberships MEMBERSHIP_NAME \ --location MEMBERSHIP_LOCATION \ --management not-installedSubstitua:
- MEMBERSHIP_NAME é o nome da associação listado quando você verificou que o cluster estava registrado na frota.
- MEMBERSHIP_LOCATION é o local da assinatura (uma
região ou
global).
Verifique se o estado de associação do recurso de malha para o estado do plano de controle é
DISABLED.gcloud container fleet mesh describe --project FLEET_PROJECT_IDA saída é semelhante a:
servicemesh: controlPlaneManagement: details: - code: DISABLED details: Control Plane Management is not enabled. state: DISABLED dataPlaneManagement: details: - code: DISABLED details: Data Plane Management is not enabled. state: DISABLED state: description: 'Please see https://cloud.google.com/service-mesh/docs/install for instructions to onboard to Anthos Service Mesh.' ...Se o estado do plano de controle for
DEPROVISIONING, verifique novamente após alguns minutos.- Se o estado do plano de controle for
STALLED, a desinstalação será bloqueada devido a uma condição de erro interno. Se o problema persistir, entre em contato com o suporte.
- Se o estado do plano de controle for
Opcionalmente, remova CRs e CRDs do Istio, o ConfigMap istio-(revision), o ConfigMap asm-options e o namespace
istio-systempara remover a malha de serviço do cluster ou usá-los em outra malha de serviço compatível com a API Istio.Remova os CRs do Istio:
kubectl delete gateways,virtualservices,destinationrules,serviceentries,envoyfilters,sidecars,peerauthentications,requestauthentications,authorizationpolicies,telemetries,wasmplugins,proxyconfigs --all --all-namespacesRemova os CRDs do Istio:
kubectl get crds -o name | grep --color=never 'istio.io' | xargs kubectl deleteRemova o configmap istio-(revision). Pule esta etapa se você excluir o namespace
istio-system.kubectl delete configmap istio-RELEASE_CHANNEL -n istio-systemSubstitua RELEASE_CHANNEL pelo canal de lançamento (
asm-managed,asm-managed-stableouasm-managed-rapid).Remova o configmap asm-options:
kubectl delete configmap asm-options -n istio-systemRemova o namespace
istio-system:kubectl delete namespace istio-system --ignore-not-found=trueVerifique se as exclusões foram feitas:
kubectl get nsA saída deve indicar um estado
Terminatinge 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
Se você estiver usando o Certificate Authority Service, limpe as permissões e o pool de ACs criados ao configurar o Certificate Authority Service para o Managed Cloud Service Mesh.
Se você ativou a configuração padrão da frota do Cloud Service Mesh gerenciado e quer desativá-la para clusters futuros, faça isso. Você pode pular esta etapa se estiver desinstalando apenas de um cluster.
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_IDFLEET_PROJECT_ID é o ID do projeto host da frota.
Se você planeja parar de usar o Cloud Service Mesh no nível da frota, desative o recurso de malha de serviço no projeto host da frota.
gcloud container hub mesh disable --project FLEET_PROJECT_IDFLEET_PROJECT_ID é o ID do projeto host da frota.
Após a conclusão dessas etapas, todos os componentes do Cloud Service Mesh, incluindo proxies, autoridades certificadoras e papéis e vinculações de RBAC, serão removidos sistematicamente 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 malha de serviço 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.