Actualiza Anthos Service Mesh de forma local

En esta guía, se explica cómo actualizar Anthos Service Mesh de la versión 1.4.5+ or 1.5.4+ a la versión 1.5.10 en GKE on VMware.

La tarea de volver a implementar los componentes del plano de control de Anthos Service Mesh lleva entre 5 y 10 minutos en completarse. Además, debes incorporar proxies de sidecar nuevos en todas tus cargas de trabajo para que se actualicen con la versión actual de Anthos Service Mesh. El tiempo que lleva actualizar los proxies de sidecar depende de muchos factores, como la cantidad de pods, la cantidad de nodos, la configuración de escalamiento de la implementación, los presupuestos de interrupción de pods y otros ajustes de configuración. Una estimación aproximada del tiempo que lleva actualizar los proxies de sidecar es de 100 pods por minuto.

Prepárate para la actualización

En esta sección, se describen los pasos que debes seguir para actualizar Anthos Service Mesh.

  1. Revisa las funciones compatibles y esta guía para familiarizarte con las funciones y el proceso de actualización.

  2. Si habilitaste las funciones opcionales cuando instalaste la versión anterior de Anthos Service Mesh, debes habilitar las mismas funciones cuando lleves a cabo la actualización. Para habilitar funciones opcionales, agrega marcas --set values o especifica la marca -f con un archivo YAML cuando ejecutes el comando istioctl apply.

    Si actualizas desde Anthos Service Mesh 1.4.5+ y habilitaste las funciones opcionales en un archivo YAML, debes convertir el YAML de la API de IstioControlPlane para la API de Istio Operator.

  3. Programa un tiempo de inactividad. La actualización puede tomar hasta 1 hora, según la escala del clúster. Ten en cuenta que esto no incluye el tiempo que necesitas volver a implementar las cargas de trabajo para actualizar los proxies de sidecar.

Configura tu entorno

En tu máquina local, instala e inicializa la CLI de Google Cloud.

Si ya tienes instalada la CLI de gcloud, haz lo siguiente:

  1. Autentica con la CLI de gcloud:

    gcloud auth login
    
  2. Actualiza los componentes:

    gcloud components update
    
  3. Instala kubectl:

    gcloud components install kubectl
    
  4. Obtén el ID del proyecto en el que se creó el clúster:

    gcloud

    gcloud projects list

    Consola

    1. En la consola de Google Cloud, ve a la página Panel:

      Ir a la página Panel

    2. Haz clic en la lista desplegable Seleccionar una opción en la parte superior de la página. En la ventana Seleccionar una opción que aparece, elige tu proyecto. El ID del proyecto se muestra en la tarjeta de Información del proyecto del panel del proyecto.

  5. Configura el ID del proyecto predeterminado para Google Cloud CLI:

    gcloud config set project PROJECT_ID

Configura credenciales y permisos

  1. Asegúrate de tener kubectl para el clúster de usuario de GKE on VMware en el que deseas instalar Anthos Service Mesh. Ten en cuenta que solo puedes instalar Anthos Service Mesh en un clúster de usuario, no en uno de administrador.
  2. Otorga permisos de administrador de clúster al usuario actual. Estos permisos se requieren a fin de crear las reglas de control de acceso basado en funciones (RBAC) necesarias para Anthos Service Mesh:
    kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole=cluster-admin \
      --user="$(gcloud config get-value core/account)"

    Si ves el error "cluster-admin-binding" already exists, puedes ignorarlo sin problemas y continuar con la vinculación del administrador del clúster existente.

Descarga el archivo de instalación

    Linux

  1. Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-linux.tar.gz
  2. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-linux.tar.gz.1.sig
    openssl dgst -verify - -signature istio-1.5.10-asm.2-linux.tar.gz.1.sig istio-1.5.10-asm.2-linux.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    El resultado esperado es: Verified OK.

  3. Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
    tar xzf istio-1.5.10-asm.2-linux.tar.gz

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.5.10-asm.2 que contiene lo siguiente:

    • Aplicaciones de muestra en samples
    • Las siguientes herramientas del directorio bin:
      • istioctl: Usa istioctl para instalar Anthos Service Mesh.
      • asmctl: Usa asmctl para ayudar a validar la configuración de seguridad después de instalar Anthos Service Mesh. Por el momento, asmctl no es compatible con GKE en VMware.

  4. macOS

  5. Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-osx.tar.gz
  6. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.5.10-asm.2-osx.tar.gz.1.sig istio-1.5.10-asm.2-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    El resultado esperado es: Verified OK.

  7. Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
    tar xzf istio-1.5.10-asm.2-osx.tar.gz

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.5.10-asm.2 que contiene lo siguiente:

    • Aplicaciones de muestra en samples
    • Las siguientes herramientas del directorio bin:
      • istioctl: Usa istioctl para instalar Anthos Service Mesh.
      • asmctl: Usa asmctl para ayudar a validar la configuración de seguridad después de instalar Anthos Service Mesh. Por el momento, asmctl no es compatible con GKE en VMware.

  8. Windows

  9. Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-win.zip
  10. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.5.10-asm.2-win.zip.1.sig istio-1.5.10-asm.2-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    El resultado esperado es: Verified OK.

  11. Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
    tar xzf istio-1.5.10-asm.2-win.zip

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.5.10-asm.2 que contiene lo siguiente:

    • Aplicaciones de muestra en samples
    • Las siguientes herramientas del directorio bin:
      • istioctl: Usa istioctl para instalar Anthos Service Mesh.
      • asmctl: Usa asmctl para ayudar a validar la configuración de seguridad después de instalar Anthos Service Mesh. Por el momento, asmctl no es compatible con GKE en VMware.

  12. Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
    cd istio-1.5.10-asm.2
  13. Para mayor comodidad, agrega las herramientas que contiene el directorio /bin a tu ruta de acceso (PATH).
    export PATH=$PWD/bin:$PATH

Actualiza Anthos Service Mesh

En esta sección, se explica cómo actualizar Anthos Service Mesh y habilitar las funciones de valores predeterminados compatibles que aparecen en la página Funciones compatibles. Para obtener información sobre cómo habilitar las funciones opcionales compatibles, consulta Habilita funciones opcionales.

Para instalar Anthos Service Mesh, ejecuta este comando:

Elige uno de los siguientes comandos para configurar Anthos Service Mesh en el modo de autenticación PERMISSIVE de mutual TLS (mTLS) o el modo STRICT de mTLS.

PERMISSIVE de mTLS

istioctl manifest apply --set profile=asm-onprem

STRICT de mTLS

istioctl manifest apply --set profile=asm-onprem \
  --set values.global.mtls.enabled=true

Verifica los componentes del plano de control

El cambio a una versión inferior requiere reinstalar los componentes del plano de control, lo que lleva entre 5 y 10 minutos en completarse. Los componentes del plano de control anteriores se finalizan y, luego, se borran a medida que se instalan los componentes nuevos. Para verificar el progreso, observa el valor en la columna AGE de las cargas de trabajo.

kubectl get pod -n istio-system

Resultado de ejemplo:

NAME                                     READY   STATUS        RESTARTS   AGE
istio-ingressgateway-5bfdf7c586-v6wxx    2/2     Terminating   0          25m
istio-ingressgateway-7b598c5557-b88md    2/2     Running       0          5m44s
istiod-78cdbbbdb-d7tps                   1/1     Running       0          5m16s
promsd-576b8db4d6-lqf64                  2/2     Running       1          5m26s

En este ejemplo, hay dos instancias de istio-ingressgateway. Se finalizará la instancia con 25m en la columna AGE. Todos los demás componentes están recién instalados.

Actualiza los proxies de sidecar

Anthos Service Mesh usa proxies de sidecar para mejorar la seguridad, confiabilidad y observabilidad de la red. Con Anthos Service Mesh, estas funciones se abstraen del contenedor principal de la aplicación y se implementan en un proxy común fuera del proceso, que se entrega como un contenedor separado en el mismo pod.

Todas las cargas de trabajo que se ejecutan en tu clúster antes de instalar Anthos Service Mesh deben tener el proxy de sidecar incorporado o actualizado para que tengan la versión actual de Anthos Service Mesh. Antes de implementar las cargas de trabajo nuevas, asegúrate de configurar la incorporación del proxy de sidecar para que Anthos Service Mesh pueda supervisar y asegurar el tráfico.

Puedes habilitar la incorporación automática del sidecar con un comando, por ejemplo:

kubectl label namespace NAMESPACE istio-injection=enabled --overwrite

En el ejemplo anterior, NAMESPACE es el nombre del espacio de nombres de los servicios de tu aplicación o es default si no creaste un espacio de nombres de forma explícita.

Para obtener más información, consulta Incorpora proxies de sidecar.