Configuração e preparação do ambiente para a atualização

Prepare-se para atualizar a instalação anterior do Knative Serving e migrar as suas cargas de trabalho configurando o ambiente de linha de comandos, criando variáveis de ambiente e transferindo o script de migração.

Antes de começar

  • Primeiro, tem de rever e garantir que cumpre os requisitos antes de fazer a atualização.

  • Por predefinição, o Cloud Shell inclui as versões mais recentes dos comandos gcloud e kubectl. Se optar por usar o ambiente de linha de comandos do seu computador local, tem de garantir que cumpre os seguintes requisitos mínimos:

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

    Saiba como configurar as ferramentas de linha de comandos

  • Os passos de preparação nesta página são necessários ao longo do processo de atualização e migração.

    Importante: todos os comandos usados durante o processo baseiam-se nas variáveis de ambiente que definir abaixo. Por exemplo, se fechar o Cloud Shell ou a sessão expirar, tem de garantir que as variáveis de ambiente necessárias são repostas.

Configure o seu ambiente

  1. Para usar o Cloud Shell, abra-o na Google Cloud consola:

    Ative o Cloud Shell

    Importante: o Cloud Shell tem limites de utilização e pode atingir o limite de tempo. Se a sua sessão expirar, tem de garantir que as variáveis de ambiente necessárias são repostas.

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

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

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

      Substitua o seguinte:

      • PROJECT_ID com o ID do seu Google Cloud projeto.
      • CLUSTER_NAME com o ID do cluster ou o identificador totalmente qualificado do cluster.
      • CLUSTER_LOCATION com a região ou a zona em que o seu cluster está localizado.
    2. Consoante a sua configuração, tem de identificar o gateway de entrada que está a processar o tráfego no seu cluster. É importante identificar que versão do Istio está realmente configurada e a publicar tráfego.

      • Se usar a versão incluída do Istio, verifique se o nome do serviço de entrada é istio-ingress no espaço de nomes gke-system:

        kubectl get svc istio-ingress -n gke-system
        

        Resultado: são devolvidos os detalhes da sua configuração.

      • Se instalou o "suplemento Istio", tem de determinar que gateway de entrada está configurado e a processar ativamente o tráfego obtendo os endereços IP dos serviços e identificando qual deles está configurado para o seu domínio.

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

          Execute os seguintes comandos para obter os detalhes de configuração dos serviços de entrada "versão integrada do Istio" (istio-ingress) e "suplemento do Istio" (istio-ingressgateway):

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

          Exemplo de resultado:

          Tenha em atenção 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 o endereço IP externo configurado para processar o tráfego através do registo DNS do seu domínio personalizado:

          1. Aceda à página de mapeamentos de domínios do Knative serving:

            Aceda a Mapeamentos de domínios

          2. Clique no ícone de elipse vertical de 3 pontos à direita do seu serviço e, de seguida, clique em REGISTOS DE DNS para apresentar todos os registos de DNS:

            selecione registos de DNS

            Usando o exemplo acima, o gateway de entrada do suplemento Istio está a ser usado e a servir tráfego se a configuração do registo DNS estiver definida para o endereço IP 10.987.654.321 do serviço istio-ingressgateway.

    3. Defina variáveis para o nome e o espaço de nomes do serviço de entrada que está a servir tráfego para o seu cluster:

      export INGRESS_NAME=INGRESS_NAME
      export INGRESS_NAMESPACE=INGRESS_NAMESPACE
      

      Substitua o seguinte:

      • INGRESS_NAME com o nome do serviço de entrada que identificou no passo anterior.

      • INGRESS_NAMESPACE com o espaço de nomes do serviço de entrada que identificou no passo anterior.

  3. Configure a CLI gcloud:

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

    • Se já tiver acesso ao cluster privado a partir do cliente onde vai executar o script de migração, pode passar ao passo seguinte.

    • Se o seu cluster privado tiver o master-authorized-network ativado, pode ativar o acesso a partir do cliente onde vai executar o script de migração 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. Transfira o 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 a "redução para zero". Caso contrário, a redução vai falhar e causar erros quando o nó principal for atualizado:

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

    Tenha em atenção que o passo final deste processo de atualização e migração é reativar a "redução para zero".

O que se segue?

Desinstale o suplemento do GKE.