Desinstalar o Cloud Service Mesh

Esta página explica 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.

  1. 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.
  2. Desativar o Cloud Service Mesh gerenciado automaticamente pela API Fleet, se estiver ativado.

  3. 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-labels
    

    O 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 coluna LABELS, remova-a:

     kubectl label namespace YOUR_NAMESPACE istio.io/rev-
    

    Se você vir istio-injection na saída na coluna LABELS, remova-a:

     kubectl label namespace YOUR_NAMESPACE istio-injection-
    

    Se você não vir os rótulos istio.io/rev ou istio-injection, a injeção automática não foi ativada no namespace.

  4. Reinicie as cargas de trabalho que tenham arquivos secundários injetados para remover os proxies.

  5. Se você estiver usando o Cloud Service Mesh gerenciado, remova todos os recursos controlplanerevision no cluster:

    kubectl delete controlplanerevision RELEASE_CHANNEL -n istio-system
    

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

  6. Exclua os webhooks do cluster, se houver.

    Cloud Service Mesh no cluster

    Exclua validatingwebhooksconfiguration e mutatingwebhookconfiguration.

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

    Cloud Service Mesh gerenciado

    A. Exclua validatingwebhooksconfiguration:

    kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
    

    B. Exclua mutatingwebhookconfiguration:

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

  8. Exclua os namespaces istio-system e asm-system:

     kubectl delete namespace istio-system asm-system --ignore-not-found=true
    
  9. 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
    
    1. Se você excluir ou já tiver excluído seus clusters, verifique se cada cluster está desregistrado da frota.
  10. Se você estiver usando o Cloud Service Mesh gerenciado, exclua a implantação mdp-controller:

     kubectl delete deployment mdp-controller -n kube-system
    
  11. Exclua o DaemonSet istio-cni-node:

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