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 sem custo financeiro" do serviço Knative, também conhecida como "complemento do GKE", inclui uma versão integrada e simplificada do Istio 1.4, que não é mais compatível com o Anthos 1.8.

O upgrade da instalação de veiculação do Knative para usar frotas e o Cloud Service Mesh oferece maior upgrade de produtos e independência de gerenciamento, além de 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 do GKE") para um novo cluster em que você instalou e configurou 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, você pode 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 serviços e implanta cada arquivo YAML no novo cluster na instalação em 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 seu serviço 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 instalação do novo componente de frota do serviço Knative.

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

  • 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 neste guia para:

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

O guia a seguir mostra o processo alternativo de upgrade 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 em clusters do Google Kubernetes Engine que já instalaram o serviço Knative 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 do GKE", que está configurado para lidar com 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 seu projeto do Google Cloud para atender aos requisitos do cluster, da frota e do Cloud Service Mesh:

    • Se você tiver a função Proprietário em projeto do Google Cloud, então você tem mais do que as permissões necessárias para criar clusters, instalar e configurar o Knative serving.

    • Os requisitos de permissões do Cloud Service Mesh também atendem a todos os requisitos de permissão para instalar e configurar o serviço 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 é suportado.

Como fazer upgrade do Knative serving e migrar cargas de trabalho

Para ajudar na atualização 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 a entrada de 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 da frota

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

  6. Finalize o upgrade e execute tarefas de limpeza