Como fazer upgrade da veiculação do Knative no Google Cloud para frotas

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

A versão anterior de "teste gratuito" do Knative, também conhecida como "complemento do GKE", inclui uma versão integrada e reduzida do Istio 1.4 que não tem mais suporte a partir do Anthos 1.8.

Fazer upgrade da instalação de exibição do Knative para usar frotas e o Cloud Service Mesh proporciona independência de gerenciamento e upgrade de produto aprimorado, bem como melhor integração 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 está instalada ("complemento do GKE") para um novo cluster em que você instalou e configurou uma nova instalação de frota de exibição do Knative. 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 servindo como um componente da 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 atual para fazer o download individual de um arquivo de configuração YAML para cada um dos serviços e, em seguida, implantar cada arquivo YAML no novo cluster na instalação da frota de exibição do Knative:

      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 de veiculação do Knative.

      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 do componente da frota do Knative.

        • CLUSTER_LOCATION pela zona ou região do cluster na nova instalação do componente da frota da disponibilização do Knative.

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

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

    • Remova o complemento GKE anterior e os recursos do Istio.
    • Instale novos recursos da frota.
    • Migre para o Cloud Service Mesh e depois o 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, incluindo todas as cargas de trabalho, para atender aos requisitos do GKE Enterprise 1.8 e versões posteriores.

Antes de começar

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

    Verifique se o complemento GKE está instalado.

    Para verificar se a instalação do Knative é 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 a exibição do Knative foi instalada no cluster my-addon-cluster por meio do "complemento do GKE", que é configurado para lidar com o 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 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 no projeto do Google Cloud, terá mais do que as permissões necessárias para criar clusters, instalar e configurar a exibição do Knative.

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

    • 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:

  • Apenas o Cloud Service Mesh versão 1.18 é compatível.

Como fazer upgrade do Knative e migrar cargas de trabalho

Para ajudar a fazer upgrade da instalação atual do Knative e migrar suas cargas de trabalho, você executa um script que automatiza a maioria das etapas e solicita entradas 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 da frota

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

  6. Finalize o upgrade e execute tarefas de limpeza