Configuração e preparação do ambiente para upgrade

Prepare-se para fazer upgrade da instalação anterior do Knative serving e migre as cargas de trabalho configurando o ambiente de linha de comando, criando variáveis de ambiente e fazendo o download do script de migração.

Antes de começar

  • Primeiro, revise e verifique se você atende aos requisitos antes de fazer upgrade.

  • Por padrão, o Cloud Shell inclui as versões mais recentes dos comandos gcloud e kubectl. Se você optar por usar o ambiente de linha de comando da sua máquina local, será preciso atender aos seguintes requisitos mínimos:

    • gcloud versão 346.0.0 ou mais recente
    • kubectl cliente versão 1.21 ou mais recente

    Saiba mais sobre como configurar suas ferramentas de linha de comando.

  • As etapas de preparação nesta página são necessárias durante todo o processo de upgrade e migração.

    Importante: todos os comandos usados durante o processo dependem das variáveis de ambiente definidas abaixo. Por exemplo, se você fechar o Cloud Shell ou o tempo limite da sessão expirar, verifique se as variáveis de ambiente necessárias são redefinidas.

Configure o ambiente.

  1. Para usar o Cloud Shell, abra o Cloud Shell no Console do Google Cloud:

    Ativar o Cloud Shell

    Importante: o Cloud Shell tem limites de uso e pode atingir o tempo limite. Se o tempo limite da sessão expirar, verifique se as variáveis de ambiente necessárias são redefinidas.

  2. Crie as seguintes variáveis de ambiente necessárias:

    1. Defina variáveis para os detalhes do cluster e do projeto do Google Cloud:

      export PROJECT_ID=PROJECT_ID
      export CLUSTER_NAME=CLUSTER_NAME
      export CLUSTER_LOCATION=CLUSTER_LOCATION
      

      Substitua:

      • PROJECT_ID pelo ID do projeto do Google Cloud.
      • CLUSTER_NAME pelo ID do cluster ou pelo identificador totalmente qualificado do cluster.
      • CLUSTER_LOCATION pela região ou zona em que o cluster está localizado.
    2. Dependendo da configuração, identifique o gateway de entrada que está processando o tráfego no cluster. É importante identificar qual versão do Istio está realmente configurada e exibindo o tráfego.

      • Se você usar a versão empacotada do Istio, verifique se o nome do serviço de entrada é istio-ingress no namespace gke-system:

        kubectl get svc istio-ingress -n gke-system
        

        Resultado: os detalhes da configuração são retornados.

      • Se você instalou o complemento do Istio, é necessário determinar qual gateway de entrada está configurado e processar ativamente o tráfego recebendo o IP. Endereços dos serviços e identificando qual deles está configurado para seu domínio.

        1. Consiga o endereço EXTERNAL-IP de cada serviço de entrada:

          Execute os seguintes comandos para receber os detalhes de configuração dos serviços de entrada "pacotes do Istio" (istio-ingress) e "complemento do Istio" (istio-ingressgateway):

          kubectl get svc istio-ingress -n gke-system
          kubectl get svc istio-ingressgateway -n istio-system
          

          Exemplo de resposta:

          Observe o valor de EXTERNAL-IP para cada serviço.

           NAME                 TYPE         CLUSTER-IP  EXTERNAL-IP    PORT(S)                                     AGE
           istio-ingress        LoadBalancer 11.11.1.111 12.345.678.910 15020:31265/TCP,80:30059/TCP,443:32004/TCP  8d
          
           NAME                 TYPE         CLUSTER-IP  EXTERNAL-IP    PORT(S)                                                                     AGE
           istio-ingressgateway LoadBalancer 22.22.2.222 10.987.654.321 15021:32747/TCP,80:30695/TCP,443:32695/TCP,15012:32369/TCP,15443:30909/TCP  88d
          
        2. Identifique qual endereço IP externo está configurado para processar o tráfego por meio do registro DNS do domínio personalizado:

          1. Acesse a página de mapeamentos de domínio do Knative serving:

            Acessar Mapeamentos de domínio

          2. Clique no ícone de três pontos à direita do serviço e, em seguida, clique em REGISTROS DNS para exibir todos os registros:

            selecionar registros DNS

            Usando o exemplo acima, o gateway de entrada do complemento do Istio está em uso e veiculando o tráfego se a configuração do registro DNS estiver definida como o endereço IP 10.987.654.321 do }istio-ingressgateway.

    3. Defina variáveis para o nome e namespace do serviço de entrada que está veiculando tráfego para o cluster:

      export INGRESS_NAME=INGRESS_NAME
      export INGRESS_NAMESPACE=INGRESS_NAMESPACE
      

      Substitua:

      • INGRESS_NAME pelo nome do serviço de entrada identificado na etapa anterior;

      • INGRESS_NAMESPACE pelo namespace do serviço de entrada que você identificou na etapa anterior.

  3. Configure a Google Cloud CLI:

    gcloud config set project ${PROJECT_ID}
    gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
    
  4. Para clusters particulares:

    • Se você já tiver acesso ao cluster particular a partir do cliente em que executará o script de migração, pule para a próxima etapa.

    • Se o cluster particular tiver master-authorized-network ativado, será possível ativar o acesso no cliente em que o script de migração será executado adicionando o endereço IP do cliente à lista de permissões master-authorized-networks.

      gcloud container clusters update ${CLUSTER_NAME} \
          --region=${CLUSTER_LOCATION} \
          --enable-master-authorized-networks \
          --master-authorized-networks $(curl ifconfig.me)/32
      
  5. Faça o download do script de migração do Knative serving:

    TMP_DIR=$(mktemp -d)
    gcloud storage cp gs://crfa-to-hub-upgrade/migration-addon.sh $TMP_DIR
    cd $TMP_DIR
    chmod +x ./migration-addon.sh
    
  6. Execute o seguinte comando para desativar o "escalonamento para zero". Caso contrário, o escalonamento falhará e causará erros quando o nó mestre for atualizado:

    kubectl patch cm config-autoscaler -n knative-serving -p '{"data":{"enable-scale-to-zero": "false"}}'
    

    Observe que a etapa final neste processo de upgrade e migração é reativar "escalonamento para zero".

A seguir

Desinstale o complemento do GKE.