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
ekubectl
. 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 recentekubectl
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.
Para usar o Cloud Shell, abra o Cloud Shell no Console do Google Cloud:
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.
Crie as seguintes variáveis de ambiente necessárias:
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.
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 namespacegke-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.
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
Identifique qual endereço IP externo está configurado para processar o tráfego por meio do registro DNS do domínio personalizado:
Acesse a página de mapeamentos de domínio do Knative serving:
Clique no ícone de três pontos à direita do serviço e, em seguida, clique em REGISTROS DNS para exibir todos os registros:
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
.
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.
Configure a Google Cloud CLI:
gcloud config set project ${PROJECT_ID} gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
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õesmaster-authorized-networks
.gcloud container clusters update ${CLUSTER_NAME} \ --region=${CLUSTER_LOCATION} \ --enable-master-authorized-networks \ --master-authorized-networks $(curl ifconfig.me)/32
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
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.