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

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

  1. Para usar Cloud Shell, abre Cloud Shell en la consola de Google Cloud:

    Activar Cloud Shell

    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.

  2. Crea las siguientes variables de entorno necesarias:

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

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

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

            Ir a Mapeos de dominios

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

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

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

  3. Configura Google Cloud CLI:

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

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