Anthos Service Mesh 1.6

Instala Anthos Service Mesh en un clúster de GKE en Google Cloud

En esta guía, se explica cómo realizar una instalación limpia de la versión 1.6.8 de Anthos Service Mesh en un clúster de GKE en Google Cloud. Si tienes instalada una versión anterior de Anthos Service Mesh, consulta la sección sobre cómo actualizar Anthos Service Mesh en GKE.

Antes de comenzar

Antes de instalar Anthos Service Mesh, asegúrate de haber hecho lo siguiente:

Configura credenciales y permisos

  1. Inicializa tu proyecto a fin de prepararlo para la instalación. Entre otras cosas, con este comando puedes crear una cuenta de servicio para permitir que los componentes del plano de control, como el proxy de sidecar, accedan a los datos y recursos de tu proyecto de forma segura:

    curl --request POST \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --data '' \
      "https://meshconfig.googleapis.com/v1alpha1/projects/${PROJECT_ID}:initialize"

    El comando responde con llaves vacías: {}.

  2. Obtén credenciales de autenticación para interactuar con el clúster:

    gcloud container clusters get-credentials ${CLUSTER_NAME}
    
  3. Otorga permisos de administrador de clúster al usuario actual. Estos permisos son obligatorios 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.6.8-asm.0-linux-amd64.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.6.8-asm.0-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.6.8-asm.0-linux-amd64.tar.gz.1.sig istio-1.6.8-asm.0-linux-amd64.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.6.8-asm.0-linux-amd64.tar.gz

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

    • Hay aplicaciones de muestra en el directorio samples.
    • La herramienta de línea de comandos de istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio install/kubernetes/operator/profiles.

  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.6.8-asm.0-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.6.8-asm.0-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.6.8-asm.0-osx.tar.gz.1.sig istio-1.6.8-asm.0-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.6.8-asm.0-osx.tar.gz

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

    • Hay aplicaciones de muestra en el directorio samples.
    • La herramienta de línea de comandos de istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio install/kubernetes/operator/profiles.

  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.6.8-asm.0-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.6.8-asm.0-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.6.8-asm.0-win.zip.1.sig istio-1.6.8-asm.0-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.6.8-asm.0-win.zip

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

    • Hay aplicaciones de muestra en el directorio samples.
    • La herramienta de línea de comandos de istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio install/kubernetes/operator/profiles.

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

Prepara los archivos de configuración de recursos

Cuando ejecutes el comando istioctl install, debes especificar -f istio-operator.yaml en la línea de comandos. En este archivo, hay información sobre el proyecto y el clúster que se necesita para habilitar las funciones de seguridad y telemetría de Mesh. Debes descargar el archivo de configuración istio-operator.yaml y los archivos de configuración de otros recursos, y configurar la información del proyecto y del clúster.

Para preparar los archivos de configuración de recursos, sigue estos pasos:

  1. Si aún no lo hiciste, instala kpt:

    gcloud components install kpt
    
  2. Crea un directorio nuevo para los archivos de configuración de recursos del paquete de Anthos Service Mesh. Recomendamos que uses el nombre del clúster como el nombre del directorio.

  3. Cambia al directorio en el que deseas descargar el paquete de Anthos Service Mesh.

  4. Descarga el paquete de Anthos Service Mesh en el directorio de trabajo actual:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.6-asm .
    
  5. Configura el nombre del clúster:

    kpt cfg set asm gcloud.container.cluster ${CLUSTER_NAME}
    
  6. Configura el ID del proyecto:

    kpt cfg set asm gcloud.core.project ${PROJECT_ID}
    
  7. Establece la zona o región predeterminada:

    kpt cfg set asm gcloud.compute.location ${CLUSTER_LOCATION}
    
  8. De forma opcional, puedes verificar los archivos de configuración de recursos en tu propio sistema de control de origen, como Cloud Source Repositories, para poder realizar un seguimiento de los cambios en los archivos.

Instala Anthos Service Mesh

En esta sección, se explica cómo instalar Anthos Service Mesh y habilitar lo siguiente:

  • Las características predeterminadas compatibles que aparecen en la página Características admitidas para el perfil asm-gcp
  • La autoridad certificada de Anthos Service Mesh (CA de Mesh)
  • La canalización de datos de telemetría que potencia los paneles de Anthos Service Mesh en Google Cloud Console

Para obtener información sobre cómo habilitar las características opcionales compatibles, consulta Habilita características opcionales.

Para instalar Anthos Service Mesh, ejecuta este comando:

istioctl install -f asm/cluster/istio-operator.yaml

Ten en cuenta las siguientes diferencias con respecto a las versiones anteriores:

  • En las versiones 1.4 y 1.5 de Anthos Service Mesh, debes usar istioctl manifest apply. En la versión 1.6+ de Anthos Service Mesh, istioctl install funciona igual que istioctl manifest apply.

  • El archivo istio-operator.yaml está configurado a fin de usar el perfil asm-gcp, que es nuevo para la versión 1.6. No es necesario que especifiques el perfil asm-gcp en la línea de comandos con la opción --set profile, pero no afecta nada si lo haces. En las versiones 1.4 y 1.5 de Anthos Service Mesh, el nombre de perfil que especificas en la línea de comandos es asm.

La TLS mutua automática (mTLS automática) está habilitada de forma predeterminada. Con la mTLS automática, un proxy de sidecar de cliente detecta si el servidor tiene un sidecar de forma automática. El sidecar del cliente envía mTLS a las cargas de trabajo con sidecars y envía tráfico de texto sin formato a las cargas de trabajo sin sidecars.

Verifica los componentes del plano de control

Verifica que los Pods del plano de control en istio-system estén activos:

kubectl get pod -n istio-system

El resultado esperado es similar al siguiente:

NAME                                      READY   STATUS      RESTARTS   AGE
istio-ingressgateway-74cc894bfd-786rg     1/1     Running     0          7m19s
istiod-78cdbbbdb-d7tps                    1/1     Running     0          7m36s
promsd-576b8db4d6-lqf64                   2/2     Running     1          7m19s

Aplica los cambios de configuración que se especifican en ISTIO-SECURITY-2020-007 para evitar ataques de denegación del servicio (DoS) en tu malla.

Valida la instalación

Te recomendamos que uses la herramienta de análisis asmctl para validar la configuración básica del proyecto, el clúster y las cargas de trabajo. Si una prueba asmctl falla, asmctl recomienda soluciones, si es posible. El comando asmctl validate ejecuta pruebas básicas que verifican lo siguiente:

  1. Que las API requeridas por Anthos Service Mesh estén habilitadas en el proyecto
  2. Que Istio-Ingressgateway esté configurado de forma correcta para que llame a la CA de Mesh
  3. El estado general de Istiod e Istio-Ingressgateway

Si ejecutas el comando asmctl validate con la marca opcional --with-testing-workloads, además de las pruebas básicas, asmctl ejecuta pruebas de seguridad que verifican lo siguiente:

  1. Que la comunicación mutua de TLS (mTLS) está configurada de forma correcta.
  2. Que la CA de Mesh pueda emitir certificados.

Para ejecutar las pruebas de seguridad, asmctl implementa cargas de trabajo en un espacio de nombres de prueba ubicado en tu clúster, ejecuta las pruebas de comunicación de mTLS, muestra los resultados y borra el espacio de nombres de prueba.

Para ejecutar asmctl, sigue estos pasos:

  1. Asegúrate de que las credenciales predeterminadas de la aplicación de gcloud estén configuradas:

     gcloud auth application-default login
    
  2. Si aún no lo hiciste, obtén las credenciales de autenticación para interactuar con el clúster:

     gcloud container clusters get-credentials ${CLUSTER_NAME}
    
  3. Para ejecutar pruebas básicas y de seguridad (en el caso de que istio-1.6.8-asm.0/bin esté en tu PATH), ejecuta este comando:

    asmctl validate --with-testing-workloads
    

    Si se ejecuta de forma correcta, el comando responde con un resultado similar al siguiente:

    [asmctl version 0.4.0]
    Using Kubernetes context: gzip-asmctl-test_us-central1-a_gzip-asmctl-cluster
    To change the context, use the --context flag
    Validating enabled APIs
    OK
    Validating ingressgateway configuration
    OK
    Validating istio system
    OK
    
    $ asmctl validate --with-testing-workloads
    [asmctl version 0.4.0]
    Using Kubernetes context: gzip-asmctl-test_us-central1-a_gzip-asmctl-cluster
    To change the context, use the --context flag
    Validating enabled APIs
    OK
    Validating ingressgateway configuration
    OK
    Validating istio system
    OK
    Validating sample traffic
    Launching example services...
    Sent traffic to example service http code: 200
    verified mTLS configuration
    OK
    Validating issued certs
    OK

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

Antes de implementar las cargas de trabajo, asegúrate de configurar la incorporación del proxy de sidecar para que Anthos Service Mesh pueda supervisar y asegurar el tráfico.

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.

Visualiza los paneles de Anthos Service Mesh

Después de implementar las cargas de trabajo en el clúster con los proxies de sidecar incorporados, puedes explorar las páginas de Anthos Service Mesh en Cloud Console para ver todas las funciones de observabilidad que ofrece Anthos Service Mesh. Ten en cuenta que los datos de telemetría toman uno o dos minutos en aparecer en Cloud Console después de implementar las cargas de trabajo.

El acceso a Anthos Service Mesh en Cloud Console se controla mediante la administración de identidades y accesos (IAM). Para acceder a las páginas de Anthos Service Mesh, el propietario del proyecto debe otorgar a los usuarios la función de editor o visualizador del proyecto, o las funciones más restrictivas que se describen en Controla el acceso a Anthos Service Mesh en Cloud Console.

  1. En Google Cloud Console, ve a Anthos Service Mesh.

    Ir a Anthos Service Mesh

  2. Selecciona el proyecto de Cloud en la lista desplegable de la barra de menú.

  3. Si tienes más de una malla de servicios, selecciona la malla en la lista desplegable Malla de servicios.

Para obtener más información, consulta Explora Anthos Service Mesh en Cloud Console.

Además de las páginas de Anthos Service Mesh, las métricas relacionadas con tus servicios (como la cantidad de solicitudes que recibe un servicio específico) se envían a Cloud Monitoring, donde aparecen en el Explorador de métricas.

Para ver las métricas, sigue estos pasos:

  1. En Google Cloud Console, ve a la página Monitoring.

    Ir a Monitoring

  2. Selecciona Recursos > Explorador de métricas.

Para obtener una lista completa de las métricas, consulta Métricas de Istio en la documentación de Cloud Monitoring.

Registra tu clúster

Debes registrar tu clúster con el Environ del proyecto para obtener acceso a la interfaz de usuario unificada en Cloud Console. Un Environ proporciona una forma unificada de ver y administrar los clústeres y sus cargas de trabajo, incluidos los clústeres fuera de Google Cloud.

Para obtener información sobre cómo registrar tu clúster, consulta la sección sobre cómo registrar clústeres en Environ.

¿Qué sigue?