Prepara la actualización de tu instalación anterior de Knative Serving y migra tus cargas de trabajo configurando tu entorno de línea de comandos, creando variables de entorno y descargando la secuencia de comandos de migración.
Antes de empezar
Antes de cambiar a un plan superior, debe revisar y asegurarse de que cumple los requisitos.
De forma predeterminada, Cloud Shell incluye las versiones más recientes de los comandos
gcloud
ykubectl
. Si decides usar el entorno de línea de comandos de tu máquina local, debes asegurarte de que cumples los siguientes requisitos mínimos:gcloud
versión 346.0.0 o posterior- Versión 1.21 o posterior del cliente
kubectl
Más información sobre cómo configurar las herramientas de línea de comandos
Los pasos de preparación de esta página son obligatorios 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 definas más abajo. Por ejemplo, si cierras Cloud Shell o tu sesión agota el tiempo de espera, debes asegurarte de que se restablezcan las variables de entorno necesarias.
Configurar el entorno
Para usar Cloud Shell, ábrelo en la consola: Google Cloud
Importante: Cloud Shell tiene límites de uso y puede agotarse el tiempo de espera. Si la sesión agota el tiempo de espera, debes asegurarte de que se restablezcan las variables de entorno necesarias.
Crea las siguientes variables de entorno obligatorias:
Define las variables de los detalles del proyecto y del clúster: Google Cloud
export PROJECT_ID=PROJECT_ID export CLUSTER_NAME=CLUSTER_NAME export CLUSTER_LOCATION=CLUSTER_LOCATION
Haz los cambios siguientes:
- PROJECT_ID por el ID de tu Google Cloud proyecto.
- CLUSTER_NAME con el ID de tu clúster o el identificador completo del clúster.
- CLUSTER_LOCATION con la región o zona en la que se encuentra tu clúster.
En función de tu configuración, debes identificar la pasarela de entrada que gestiona el tráfico de tu clúster. Es importante identificar qué versión de Istio está configurada y sirviendo tráfico.
Si usas la versión empaquetada de Istio, comprueba 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 devuelven los detalles de la configuración.
Si has instalado el "complemento Istio", debes determinar qué pasarela de entrada está configurada y gestionando activamente el tráfico. Para ello, obtén las direcciones IP de los servicios e identifica cuál está configurada en tu dominio.
Obtén la dirección
EXTERNAL-IP
de cada servicio de entrada:Ejecuta los siguientes comandos para obtener los detalles de configuración de los servicios de entrada de la "versión empaquetada de Istio" (
istio-ingress
) y del "complemento de Istio" (istio-ingressgateway
):kubectl get svc istio-ingress -n gke-system kubectl get svc istio-ingressgateway -n istio-system
Ejemplo:
Anota el valor de
EXTERNAL-IP
de 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 gestionar el tráfico a través del registro DNS de tu dominio personalizado:
Ve a la página de asignaciones de dominios del servicio de Knative:
Haz clic en el icono de elipse vertical de 3 puntos situado a la derecha de tu servicio y, a continuación, en REGISTROS DNS para ver todos los registros DNS:
Siguiendo el ejemplo anterior, la pasarela de entrada del complemento de Istio está en uso y sirve tráfico si la configuración del registro DNS se ha definido en la dirección IP
10.987.654.321
del servicioistio-ingressgateway
.
Define variables para el nombre y el espacio de nombres del servicio de entrada que sirve tráfico a tu clúster:
export INGRESS_NAME=INGRESS_NAME export INGRESS_NAMESPACE=INGRESS_NAMESPACE
Haz los cambios siguientes:
INGRESS_NAME con el nombre del servicio de entrada que has identificado en el paso anterior.
INGRESS_NAMESPACE con el espacio de nombres del servicio de entrada que has identificado en el paso anterior.
Configura Google Cloud CLI:
gcloud config set project ${PROJECT_ID} gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
En el caso de los clústeres privados:
Si ya tienes acceso a tu clúster privado desde el cliente en el que vas a ejecutar la secuencia de comandos de migración, puedes ir al paso siguiente.
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 añadiendo la dirección IP del cliente a la lista demaster-authorized-networks
permitidas: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 del servicio de Knative:
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
Ejecuta el siguiente comando para inhabilitar la opción "Escalar a cero". De lo contrario, el escalado fallará y se producirán errores cuando se actualice el nodo maestro:
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 opción "Escalar a cero".
Siguientes pasos
Desinstala el complemento de GKE.