Actualizar Knative Serving en Google Cloud a flotas

Usa esta guía para migrar tu instalación de Knative Serving enGoogle Cloud para usar una flota con Cloud Service Mesh.

La versión anterior de prueba gratuita de Knative Serving, también denominada complemento de GKE, incluye una versión integrada y simplificada de Istio 1.4 que ya no se admite a partir de Anthos 1.8.

Si actualizas tu instalación de Knative Serving para usar flotas y Cloud Service Mesh, podrás disfrutar de una mejor actualización de productos y de una mayor independencia en la gestión, así como de una mejor integración en las funciones de GKE Enterprise. Consulta más información sobre las novedades y los cambios.

Hay dos formas de migrar tu instalación:

  • El proceso recomendado es migrar tus cargas de trabajo del clúster en el que está instalada la versión anterior de Knative Serving ("complemento de GKE") a un clúster nuevo en el que hayas instalado y configurado una nueva instalación de flota de Knative Serving. Aunque este proceso es relativamente sencillo e ideal, si tus cargas de trabajo sirven tráfico, la migración a un clúster recién creado provocará un tiempo de inactividad. Para seguir esta ruta de migración, en el nuevo clúster, debes hacer lo siguiente:

    1. Instala Knative serving como componente de la flota.
    2. Implementa tus servicios en la nueva instalación.

      Por ejemplo, puedes seguir las instrucciones para desplegar una revisión de un servicio que ya tengas para descargar individualmente un archivo de configuración YAML de cada uno de tus servicios y, a continuación, desplegar cada archivo YAML en tu nuevo clúster en la instalación de Knative Serving de la flota:

      1. En la antigua instalación, puedes ejecutar el siguiente comando para descargar un archivo de configuración YAML, como service.yaml:

        gcloud run services describe SERVICE --format export > service.yaml

        Sustituye SERVICE por el nombre de tu servicio de Knative.

      2. En la nueva instalación del componente de flota, puedes ejecutar el siguiente comando para implementar el mismo service.yaml:

        gcloud run deploy service.yaml --cluster CLUSTER_NAME --cluster-location CLUSTER_LOCATION --project PROJECT_ID

        Sustituye:

        • CLUSTER_NAME con el nombre del clúster en la nueva instalación del componente de flota de Knative Serving.

        • CLUSTER_LOCATION con la zona o región del clúster en la nueva instalación del componente de flota de Knative Serving.

        • PROJECT_ID con el ID de tu Google Cloud proyecto en el que se encuentra la nueva instalación del componente de flota de Knative Serving.

  • Alternativa: Si no puedes crear un clúster y debes migrar tu instalación activa de Knative Serving, puedes seguir los pasos de esta guía para:

    • Elimina los recursos de Istio y el complemento de GKE anterior.
    • Instalar nuevos recursos de flota.
    • Migra a Cloud Service Mesh y, a continuación, migra tu tráfico.
    • Elimina todos los recursos obsoletos y sin usar.

En esta guía se explica el proceso alternativo para actualizar la instalación activa de Knative Serving, incluidas todas las cargas de trabajo, para cumplir los requisitos de GKE Enterprise 1.8 y versiones posteriores.

Antes de empezar

  • Este proceso de actualización solo se debe llevar a cabo en clústeres de Google Kubernetes Engine que hayan instalado Knative Serving como complemento de GKE.

    Comprueba si el complemento de GKE está instalado.

    Para comprobar si tu instalación de Knative Serving es el complemento de GKE, ejecuta el siguiente comando:

    gcloud container clusters describe \
    CLUSTER_NAME \
    --region CLUSTER_LOCATION \
    --project PROJECT_ID --format='get(addonsConfig.cloudRunConfig)'

    Sustituye:

    • CLUSTER_NAME por el nombre de tu clúster.
    • CLUSTER_LOCATION con la ubicación en la que se encuentra tu clúster.
    • PROJECT_ID por el ID de tu Google Cloud proyecto.

    Resultados:

    • El complemento GKE no está instalado:
      • No se devuelve nada a tu terminal si el complemento nunca se ha instalado.
      • Se devuelve disabled=true si el complemento se había desinstalado anteriormente.
    • Se ha instalado el complemento de GKE: si el complemento está instalado en tu clúster, se devuelven los detalles de configuración del complemento. Ejemplo: loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
    Ejemplo:
    En el siguiente ejemplo se muestra que Knative Serving se ha instalado en el clúster my-addon-cluster mediante el complemento de GKE, que se ha configurado para gestionar el tráfico externo:
    gcloud container clusters describe my-addon-cluster \
    --region us-central1-c --project my-gcp-project \
    --format='get(addonsConfig.cloudRunConfig)'

    Respuesta:

    loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL

  • Debes tener los permisos adecuados en tu Google Cloud proyecto para cumplir los requisitos de tu clúster, flota y Cloud Service Mesh:

    • Si tienes el rol Propietario del proyecto Google Cloud , tienes más permisos de los necesarios para crear clústeres, instalar y configurar Knative Serving.

    • Ten en cuenta que los requisitos de permisos de Cloud Service Mesh también cumplen todos los requisitos de permisos para instalar y configurar Knative Serving.

    • Usar otros roles y los requisitos mínimos:

      En función de tu organización, también puedes cumplir los requisitos de permisos mediante una combinación de los siguientes roles predefinidos:

  • Solo se admite Cloud Service Mesh versión 1.18.

Actualizar el servicio de Knative y migrar cargas de trabajo

Para ayudarte a actualizar tu instalación de Knative Serving y migrar tus cargas de trabajo, puedes ejecutar una secuencia de comandos que automatiza la mayoría de los pasos y te pide que introduzcas información durante el proceso.

  1. Prepararse para la actualización y configurar el entorno

  2. Desinstalar el complemento de GKE

  3. Migrar a Cloud Service Mesh

  4. Instalar el componente de flota

  5. Migrar el tráfico de cargas de trabajo a Cloud Service Mesh

  6. Finalizar la actualización y realizar tareas de limpieza