Desinstale o Cloud Service Mesh

Esta página explica como desinstalar o Cloud Service Mesh.

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.

  1. 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.
  2. 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
    
  3. 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 coluna LABELS, remova-o:

     kubectl label namespace YOUR_NAMESPACE istio.io/rev-
    

    Se vir istio-injection no resultado na coluna LABELS, remova-o:

     kubectl label namespace YOUR_NAMESPACE istio-injection-
    

    Se não vir as etiquetas istio.io/rev nem istio-injection, significa que a injeção automática não foi ativada no espaço de nomes.

  4. Reinicie as cargas de trabalho com sidecars injetados para remover os proxies.

  5. Se estiver a usar o Cloud Service Mesh gerido, remova todos os controlplanerevision recursos no cluster:

    kubectl delete controlplanerevision RELEASE_CHANNEL -n istio-system
    

    Onde RELEASE_CHANNEL é o canal de lançamento que aprovisionou, como asm-managed, asm-managed-rapid ou asm-managed-stable.

  6. Elimine webhooks do seu cluster, se existirem.

    Cloud Service Mesh no cluster

    Elimine o validatingwebhooksconfiguration e o mutatingwebhookconfiguration.

    kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot
    

    Managed Cloud Service Mesh

    A. Eliminar validatingwebhooksconfiguration.

    kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
    

    B. Eliminar mutatingwebhookconfiguration.

    kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL
    
  7. 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. Se implementou um plano de controlo gerido, este é eliminado automaticamente com o passo anterior.

    Para remover o plano de controlo no cluster, execute o comando abaixo:

    istioctl x 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.

  8. Elimine os espaços de nomes istio-system e asm-system:

     kubectl delete namespace istio-system asm-system --ignore-not-found=true
    
  9. 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
    
    1. Se vai eliminar os clusters ou já os eliminou, certifique-se de que cada cluster está anulado no seu conjunto de veículos.
  10. 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.

  11. Se estiver a usar o Cloud Service Mesh gerido, elimine a implementação mdp-controller:

     kubectl delete deployment mdp-controller -n kube-system
    
  12. 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
    
  13. Elimine o daemonset istio-cni-node:

     kubectl delete daemonset istio-cni-node -n kube-system
    

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.