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.

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 \
         --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).
  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, verifique que implementação do plano de controlo tem no seu cluster. Isto ajuda a eliminar os recursos relevantes nos passos seguintes.

  6. Se estiver a usar o Cloud Service Mesh gerido, remova todos os controlplanerevisionrecursos no cluster:

    kubectl delete controlplanerevision asm-managed asm-managed-rapid asm-managed-stable -n istio-system --ignore-not-found=true
    
  7. 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. Elimine toda a atividade de mutatingwebhookconfiguration.

    kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL
    
  8. 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.

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

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

  12. 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.

  13. Se ativou a malha de serviços do Google Cloud gerida, verifique e elimine os recursos geridos, se estiverem presentes:

    1. Elimine a implementação mdp-controller:

        kubectl delete deployment mdp-controller -n kube-system
      
    2. Se tiver a implementação do TRAFFIC_DIRECTORplano 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:

      1. Elimine o snk daemonset.

           kubectl delete daemonset snk -n kube-system
        
      2. 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.
    3. 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
      
    4. Elimine o daemonset istio-cni-node:

        kubectl delete daemonset istio-cni-node -n kube-system
      
  14. Se estiver a desinstalar o Cloud Service Mesh gerido e a manter o cluster, contacte o apoio técnico para garantir que todos osGoogle Cloud recursos 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.