Como fazer upgrade para o Istio 1.6 com o operador

Nesta página, descrevemos como fazer upgrade para o Istio 1.6 com o Operator antes da migração do Istio de código aberto.

A partir da versão 1.6, o complemento do Istio no Google Kubernetes Engine usa o Istio Operator para instalação e configuração . O Istio Operator segue o padrão de operador do Kubernetes. O operador permite que você configure o Istio ao estabelecer uma definição de recurso personalizado (CRD, na sigla em inglês) do Kubernetes para a instalação do Istio. Em seguida, o operador usa um controlador para fazer alterações na instalação que correspondem ao recurso personalizado.

Quando você faz upgrade do cluster para as versões 1.17.17-gke.3100 ou superior, 1.18.16-gke.1600 ou superior, 1.19.8-gke.1600 ou superior, o Istio 1.6 Operator e o plano de controle são instalados junto com o plano de controle do Istio 1.4.x atual; O upgrade requer ação do usuário e usa revisões para migrar as cargas de trabalho para o novo plano de controle. Com um upgrade baseado em revisão, é possível migrar para a versão 1.6 definindo um rótulo nas cargas de trabalho para apontar para o novo plano de controle e executando uma reinicialização gradual.

Não estamos lançando a versão 1.5 do Istio no complemento do Google Kubernetes Engine. A 1.6 é a versão lançada após a 1.4.10.

Benefícios do Istio Operator

O Operator permite maior configuração de instalação. Nas versões anteriores à 1.6, o gerenciador de complementos do GKE reconcilia qualquer alteração no manifesto do Istio e impede a maioria dos tipos de alterações de configuração. O Istio Operator não tem essa limitação. Ele gera um manifesto de instalação do plano de controle do Istio com base no recurso personalizado IstioOperator (CR, na sigla em inglês) fornecido durante a instalação. Esse CR está totalmente sob seu controle e nunca é reconciliado.

Como fazer upgrade para o Istio 1.6 com o operador

Siga as etapas desta seção para fazer upgrade para o Istio 1.6 com o operador.

Você só precisa seguir estas etapas uma vez para fazer a transição para o Operator. Os upgrades subsequentes seguem o processo de upgrade do plano de controle duplo.

  1. Selecione uma versão do GKE que inclua o Istio 1.6 (1.17.17-gke.3100 ou superior, 1.18.16-gke.1600 ou superior, 1.19.8-gke.1600 ou superior) e faça upgrade do cluster.

    O complemento do Istio no Google Kubernetes Engine com o Istio 1.6 instala duas versões do Istio:

    • A versão do manifesto estático controlada pelo gerenciador de complementos, que fica ativa depois do upgrade do cluster.

    • A versão 1.6 controlada pelo Operator (que fica inativa até que seja ativada). A versão 1.6 inativa não se conecta a nenhum proxy e consome recursos de cluster insignificantes.

    Se a versão atualmente instalada do Istio for diferente da versão no manifesto estático de destino, o upgrade do cluster também poderá executar um upgrade no local do Istio. Por exemplo, se o cluster estiver executando o Istio 1.4.6-gke.0 e você selecionar o GKE versão 1.17.7-gke.3100, será feito o upgrade do plano de controle do Istio para a versão 1.4.10-gke.0 (ou superior) como parte do upgrade.

    Para garantir que a versão do cluster seja recente o suficiente, execute o comando a seguir:

    kubectl get ns istio-system --show-labels | if [[ $(grep EnsureExists) ]];
    then echo "Version is recent enough"; else echo "Need more recent version"; fi
    

    A saída do console indica se a versão do cluster é recente o suficiente.

  2. Faça o download do script upgrade-14-16:

    curl -LO https://storage.googleapis.com/csm-artifacts/asm/upgrade-14-16
    

    É possível ver o script no GitHub (em inglês).

  3. Torne o script executável:

    chmod +x upgrade-14-16
    
  4. Verifique se kubectl está configurado para o cluster que você quer atualizar.

    gcloud container clusters get-credentials cluster-name
    

    em que cluster-name é o nome do cluster.

  5. Execute o script:

    ./upgrade-14-16
    

    O script orienta você no processo de migração de um único cluster.

  6. Para migrar outro cluster, execute a ferramenta com a sinalização --reset:

    ./upgrade-14-16 --reset
    

    Em seguida, repita as etapas 4 e 5.