Como fazer upgrade do Knative serving no Google Cloud para frotas

Use este guia para migrar sua instalação atual do Knative serving no Google Cloud para usar uma frota com o Cloud Service Mesh.

A versão anterior de "teste gratuito" do Knative serving, também chamada de "complemento do GKE", inclui uma versão integrada e simplificada do Istio 1.4 que não é mais compatível a partir do Anthos 1.8.

O upgrade da instalação do Knative serving para usar frotas, e o Cloud Service Mesh oferece maior independência de gerenciamento e upgrade de produtos, além de uma integração aprimorada entre os recursos do GKE Enterprise. Saiba mais sobre as novidades e mudanças.

Há dois caminhos para migrar a instalação:

  • O processo recomendado é migrar as cargas de trabalho do cluster em que a versão anterior do Knative serving está instalada ("complemento GKE") para um novo cluster em que você tenha instalado e configurado uma nova instalação de frota do Knative serving. Embora esse processo seja relativamente simples e ideal, se as cargas de trabalho veicularem tráfego, a migração para um cluster recém-criado fará inatividade. Para executar esse caminho de migração, no novo cluster, você precisa:

    1. Instale o Knative serving como um componente de frota.
    2. Implante seus serviços na nova instalação.

      Por exemplo, é possível usar as instruções para implantar uma revisão de um serviço existente para fazer o download individual de um arquivo de configuração YAML para cada um dos serviços e implantar cada arquivo YAML no novo cluster na instalação da frota do Knative serving:

      1. Na instalação antiga, é possível executar o seguinte comando para fazer o download de um arquivo de configuração YAML, como service.yaml:

        gcloud run services describe SERVICE --format export > service.yaml

        Substitua SERVICE pelo nome do serviço do Knative serving.

      2. Na nova instalação do componente da frota, execute o comando a seguir para implantar a mesma service.yaml:

        gcloud run deploy service.yaml --cluster CLUSTER_NAME --cluster-location CLUSTER_LOCATION --project PROJECT_ID

        Substitua:

        • CLUSTER_NAME pelo nome do cluster na nova instalação de componente de frota do Knative serving.

        • CLUSTER_LOCATION pela zona ou região do cluster na nova instalação de componentes da frota do Knative serving.

        • PROJECT_ID pelo ID do projeto do Google Cloud em que está a nova instalação de componente da frota do Knative serving.

  • Alternativa: para usuários que não conseguem criar um novo cluster e precisam migrar a instalação ativa do Knative serving, siga as etapas deste guia para:

    • Remova o complemento GKE anterior e os recursos do Istio.
    • Instalar novos recursos da frota.
    • Migrar para o Cloud Service Mesh e depois migrar seu tráfego.
    • Limpar todos os recursos desatualizados e não utilizados.

O guia a seguir mostra o processo alternativo de upgrade da instalação atual e ativa do Knative serving, incluindo todas as cargas de trabalho, para atender aos requisitos do GKE Enterprise 1.8 e versões mais recentes.

Antes de começar

  • Esse processo de upgrade precisa ser executado apenas nos clusters do Google Kubernetes Engine que já instalaram o Knative serving como o "complemento do GKE".

    Verifique se o complemento GKE está instalado.

    Para verificar se a instalação do Knative serving é o "complemento do GKE", execute o seguinte comando:

    gcloud container clusters describe \
    CLUSTER_NAME \
    --region CLUSTER_LOCATION \
    --project PROJECT_ID --format='get(addonsConfig.cloudRunConfig)'
    

    Substitua:

    • CLUSTER_NAME pelo nome do cluster.
    • CLUSTER_LOCATION: pelo local em que o cluster está localizado.
    • PROJECT_ID pelo ID do seu projeto do Google Cloud.

    Resultados:

    • "Complemento do GKE" não instalado:
      • Nada será retornado ao terminal se o complemento nunca tiver sido instalado.
      • disabled=true será retornado se o complemento tiver sido desinstalado anteriormente.
    • "Complemento do GKE" está instalado: se o complemento estiver instalado no cluster, os detalhes da configuração do complemento serão retornados. Exemplo: loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
    Exemplo:
    O exemplo a seguir demonstra que o Knative serving foi instalado no cluster my-addon-cluster pelo "complemento GKE", que está configurado para processar tráfego externo:
    gcloud container clusters describe my-addon-cluster \
    --region us-central1-c --project my-gcp-project \
    --format='get(addonsConfig.cloudRunConfig)'
    

    Resposta:

    loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
    

  • Você precisa ter as permissões adequadas no projeto do Google Cloud para atender aos requisitos do cluster, da frota e do Cloud Service Mesh:

    • Se você tiver o papel Proprietário do projeto do Google Cloud, terá mais permissões do que as necessárias para criar clusters, instalar e configurar o Knative serving.

    • Observe que os requisitos de permissões do Cloud Service Mesh também atendem a todos os requisitos de permissão para instalar e configurar o Knative serving.

    • Usar outros papéis e os requisitos mínimos:

      Dependendo da sua organização, também é possível atender aos requisitos de permissão combinando os seguintes papéis predefinidos:

  • Somente o Cloud Service Mesh versão 1.18 é aceito.

Como fazer upgrade do Knative serving e migrar cargas de trabalho

Para ajudar no upgrade da instalação atual do Knative serving e na migração das cargas de trabalho, você executa um script que automatiza a maioria das etapas e solicita informações durante todo o processo.

  1. Prepare-se para o upgrade e configure o ambiente

  2. Desinstalar o complemento do GKE

  3. Migrar para o Cloud Service Mesh

  4. Instalar o componente de frota

  5. Migrar o tráfego de carga de trabalho para o Cloud Service Mesh

  6. Finalize o upgrade e execute tarefas de limpeza