Configuración del entorno y preparación para la actualización

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 y kubectl. 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

  1. Para usar Cloud Shell, ábrelo en la consola: Google Cloud

    Activar Cloud Shell

    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.

  2. Crea las siguientes variables de entorno obligatorias:

    1. 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.
    2. 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 nombres gke-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.

        1. 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
          
        2. Identifica qué dirección IP externa está configurada para gestionar el tráfico a través del registro DNS de tu dominio personalizado:

          1. Ve a la página de asignaciones de dominios del servicio de Knative:

            Ir a Asignaciones de dominio

          2. 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:

            Selecciona 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 servicio istio-ingressgateway.

    3. 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.

  3. Configura Google Cloud CLI:

    gcloud config set project ${PROJECT_ID}
    gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
    
  4. 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 de master-authorized-networkspermitidas:

      gcloud container clusters update ${CLUSTER_NAME} \
          --region=${CLUSTER_LOCATION} \
          --enable-master-authorized-networks \
          --master-authorized-networks $(curl ifconfig.me)/32
      
  5. 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
    
  6. 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.