Prepárate para actualizar la instalación anterior de la entrega de Knative y migrar tus cargas de trabajo. Para ello, configura el entorno de línea de comandos, crea variables de entorno y descarga la secuencia de comandos de migración.
Antes de comenzar
Debes revisar y asegurarte de cumplir con los requisitos antes de actualizar.
De forma predeterminada, Cloud Shell incluye las versiones más recientes de los comandos
gcloud
ykubectl
. Si eliges usar el entorno de línea de comandos de tu máquina local, debes asegurarte de que cumples con los requisitos mínimos siguientes:gcloud
versión 346.0.0 o posteriorkubectl
versión 1.21 o posterior del cliente
Obtén más información sobre cómo configurar tus herramientas de línea de comandos.
Los pasos de preparación de esta página son necesarios durante todo el proceso de actualización y migración.
Importante: Todos los comandos que se usan durante el proceso dependen de las variables de entorno que configuras a continuación. Por ejemplo, si cierras Cloud Shell o se agota el tiempo de espera de la sesión, debes asegurarte de que se restablezcan las variables de entorno necesarias.
Configura tu entorno
Para usar Cloud Shell, abre Cloud Shell en la consola de Google Cloud:
Importante: Cloud Shell tiene límites de uso y se puede agotar su tiempo de espera. Si se agota el tiempo de espera de tu sesión, debes asegurarte de que las variables de entorno necesarias se restablezcan.
Crea las siguientes variables de entorno necesarias:
Establece las variables para el proyecto de Google Cloud y los detalles del clúster:
export PROJECT_ID=PROJECT_ID export CLUSTER_NAME=CLUSTER_NAME export CLUSTER_LOCATION=CLUSTER_LOCATION
Reemplaza lo siguiente:
- PROJECT_ID por el ID del proyecto de Google Cloud.
- CLUSTER_NAME por el ID del clúster o el identificador completamente calificado del clúster.
- CLUSTER_LOCATION por la región o zona en la que se encuentra el clúster.
Según tu configuración, debes identificar la puerta de enlace de entrada que controla el tráfico en tu clúster. Es importante identificar qué versión de Istio está configurada y entrega tráfico.
Si usas la versión del paquete de Istio, verifica que el nombre del servicio de entrada sea
istio-ingress
en el espacio de nombresgke-system
:kubectl get svc istio-ingress -n gke-system
Resultado: Se muestran los detalles de tu configuración.
Si instalaste el “complemento de Istio”, debes determinar qué puerta de enlace de entrada está configurada y administra el tráfico de forma activa mediante la obtención de las direcciones IP de los servicios e identificar cuál está configurada en tu dominio.
Obtén la dirección
EXTERNAL-IP
para cada servicio de entrada:Ejecuta los siguientes comandos para obtener los detalles de configuración de los servicios de entrada “versión del paquete de Istio” (
istio-ingress
) y “complemento de Istio” (istio-ingressgateway
):kubectl get svc istio-ingress -n gke-system kubectl get svc istio-ingressgateway -n istio-system
Resultado de ejemplo:
Ten en cuenta el valor de
EXTERNAL-IP
para cada servicio.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
Identifica qué dirección IP externa está configurada para controlar el tráfico a través del registro DNS de tu dominio personalizado:
Ve a la página de asignaciones de dominios de entrega de Knative:
Haz clic en el ícono de menú de 3 puntos verticales que se encuentra a la derecha del servicio y, luego, haz clic en REGISTROS DNS para ver todos los registros DNS:
En el ejemplo anterior, la puerta de enlace de entrada del complemento de Istio está en uso y entrega tráfico si la configuración del registro DNS se establece en la dirección IP
10.987.654.321
del servicioistio-ingressgateway
.
Configura las variables para el nombre y el espacio de nombres del servicio de entrada que entrega el tráfico de tu clúster:
export INGRESS_NAME=INGRESS_NAME export INGRESS_NAMESPACE=INGRESS_NAMESPACE
Reemplaza lo siguiente:
INGRESS_NAME con el nombre del servicio de entrada que identificaste en el paso anterior.
INGRESS_NAMESPACE con el espacio de nombres del servicio de entrada que identificaste en el paso anterior.
Configura Google Cloud CLI:
gcloud config set project ${PROJECT_ID} gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
Para clústeres privados:
Si ya tienes acceso a tu clúster privado desde el cliente en el que ejecutarás la secuencia de comandos de migración, puedes pasar al siguiente paso.
Si tu clúster privado tiene
master-authorized-network
habilitado, puedes habilitar el acceso desde el cliente en el que ejecutarás la secuencia de comandos de migración si agregas la dirección IP del cliente a la lista de entidades permitidasmaster-authorized-networks
:gcloud container clusters update ${CLUSTER_NAME} \ --region=${CLUSTER_LOCATION} \ --enable-master-authorized-networks \ --master-authorized-networks $(curl ifconfig.me)/32
Descarga la secuencia de comandos de migración de entrega de Knative:
TMP_DIR=$(mktemp -d) gsutil cp gs://crfa-to-hub-upgrade/migration-addon.sh $TMP_DIR cd $TMP_DIR chmod +x ./migration-addon.sh
Ejecuta el siguiente comando para inhabilitar la “reducción de escala a cero”. De lo contrario, el escalamiento fallará y causará errores cuando se actualice el nodo principal:
kubectl patch cm config-autoscaler -n knative-serving -p '{"data":{"enable-scale-to-zero": "false"}}'
Ten en cuenta que el último paso de este proceso de actualización y migración es volver a habilitar la “reducción de escala a cero”.
¿Qué sigue?
Desinstala el complemento de GKE