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
ekubectl
. 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 recentekubectl
versão de cliente 1.21 ou mais recente
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
Para usar o Cloud Shell, abra-o na Google Cloud consola:
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.
Crie as seguintes variáveis de ambiente necessárias:
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.
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 nomesgke-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.
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
Identifique o endereço IP externo configurado para processar o tráfego através do registo DNS do seu domínio personalizado:
Aceda à página de mapeamentos de domínios do Knative serving:
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:
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çoistio-ingressgateway
.
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.
Configure a CLI gcloud:
gcloud config set project ${PROJECT_ID} gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
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õesmaster-authorized-networks
:gcloud container clusters update ${CLUSTER_NAME} \ --region=${CLUSTER_LOCATION} \ --enable-master-authorized-networks \ --master-authorized-networks $(curl ifconfig.me)/32
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
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.