Como desativar ou desinstalar o Istio no GKE

Neste guia, mostramos como desativar ou desinstalar completamente o Istio no complemento do GKE de um cluster.

Desativar o complemento do Istio no GKE desativa o gerenciamento de complementos do Istio no cluster, mas preserva a instalação e as configurações do Istio no cluster. Quando você desativa o complemento do Istio no GKE, o Google não gerencia mais a instalação do Istio no cluster. Você é responsável por gerenciar a configuração e o ciclo de vida do Istio no cluster. Para desativar o complemento Istio no GKE, siga as instruções na seção Como desativar o complemento Istio no GKE.

Em vez de desativar o complemento, é possível desinstalar completamente o complemento Istio no GKE. Desinstalar o complemento Istio no GKE remove completamente o Istio e todas as configurações associadas do cluster. Para desinstalar o complemento Istio no GKE, siga as instruções na seção Como desinstalar o Istio de um cluster.

Como desativar o complemento Istio no GKE

Desative o complemento Istio no GKE se não quiser mais que o Google gerencie a instalação do Istio. A instalação e as configurações do Istio são preservadas. Para fazer isso, verifique se você está executando as versões 1.17.17-gke.3100 ou superior, 1.18.16-gke.1600 ou superior ou 1.19.8-gke.1600 ou superior ou mais recentes do GKE. Desativar o complemento do Istio no GKE em versões anteriores do GKE desinstala completamente o Istio (a instalação e as configurações do Istio), o que pode resultar em tempo de inatividade dos seus serviços.

  1. Desative o Istio no GKE executando o seguinte comando:

    gcloud beta container clusters update my-cluster --project=$PROJECT_ID \
      --update-addons=Istio=DISABLED
    

Como desinstalar o Istio de um cluster

A maneira mais simples de remover o complemento Istio no GKE é excluir o cluster. No entanto, se o cluster tiver um aplicativo que precise ser preservado, a desativação do Istio exigirá as seguintes etapas:

  1. Verifique se o modo mTLS padrão está definido como mTLS permissivo.
  2. Desloque o tráfego para fora do gateway de entrada do Istio.
  3. Desative a injeção automática de arquivo secundário, se ativada:
    kubectl label namespace your-namespace istio-injection=disabled
    
  4. Reinicie os pods do aplicativo (usando reinicialização gradual, por exemplo) para remover os arquivos secundários do Envoy.
  5. Remova o plano de controle do Istio com gcloud:
    gcloud beta container clusters update my-cluster --project=$PROJECT_ID \
      --update-addons=Istio=DISABLED
    
  6. Exclua o IstioOperator CustomResource:

    kubectl delete istiooperator -n istio-system istio-1-6-11-gke-0
    

    Dependendo da versão do cluster, talvez seja necessário substituir istio-1-6-11-gke-0 pelo nome do CustomResource instalado no cluster. Para saber o nome, execute:

    kubectl get istiooperator -n istio-system\
    
  7. Aguarde alguns minutos para que o operador do Istio exclua os recursos instalados.

  8. Exclua o namespace istio-system, se ele existir:

    kubectl delete ns istio-system

  9. Exclua os recursos restantes do cluster do Istio:

    for i in $(kubectl get clusterrole,clusterrolebinding,crd | grep istio | cut -f1 -d' '); do kubectl delete $i; done