Instala Cloud Service Mesh para cargas de trabajo de Kubernetes fuera de Google Cloud

En esta página, se explica cómo instalar Cloud Service Mesh no administrado en el clúster para Cargas de trabajo de Kubernetes fuera de Google Cloud:

  • Ejecuta asmcli para realizar una instalación nueva de Cloud Service Mesh 1.21.4-asm.5.
  • De manera opcional, implementa una puerta de enlace de entrada.
  • Implementa o vuelve a implementar tus cargas de trabajo a fin de insertar proxies de sidecar.

Si necesitas instalar Cloud Service Mesh no administrado y en el clúster con un istiod en GKE, consulta Instala Cloud Service Mesh en el clúster en Google Cloud. Ten en cuenta que para las cargas de trabajo de Kubernetes Google Cloud, te recomendamos aprovisionar un plano de control administrado

Si deseas obtener instrucciones para preparar una instalación sin conexión de Cloud Service Mesh, ver Prepara una instalación sin conexión de Cloud Service Mesh Deberás especificar las opciones --offline y --output_dir cuando ejecutes asmcli install

Limitaciones

Ten en cuenta las siguientes limitaciones:

  • Todos los clústeres de la malla de servicios de Cloud de una malla se deben registrar en la misma de la flota en todo momento para usar Cloud Service Mesh. Otros clústeres del proyecto de un clúster de Cloud Service Mesh no deben registrarse en un de una flota diferente.

  • La herramienta de asmcli debe tener acceso a Google Kubernetes Engine (GKE) extremo. Puedes configurar el acceso con un “saltar” un servidor web, como un una VM de Compute Engine dentro de la nube privada virtual (VPC) que brinda access.

Antes de comenzar

Antes de comenzar, asegúrate de lo siguiente:

Funciones necesarias para instalar Cloud Service Mesh en el clúster

En la siguiente tabla, se describen los roles necesarios para instalar la app en el clúster la malla de servicios en la nube.

Nombre de la función ID de la función Otorga la ubicación Descripción
Administrador de GKE Hub roles/gkehub.admin Proyecto de flota Acceso completo a GKE Hubs y recursos relacionados.
Administrador de Kubernetes Engine roles/container.admin Proyecto de clúster. Ten en cuenta que esta función debe otorgarse en el proyecto de flota y de clúster para las vinculaciones entre proyectos. Proporciona acceso a la administración completa de los clústeres del contenedor y sus objetos de la API de Kubernetes.
Administrador de configuración de malla roles/meshconfig.admin Proyecto de flota y de clúster Proporciona los permisos necesarios para inicializar componentes administrados de Cloud Service Mesh, como el permiso del plano de control administrado y el backend que permite que las cargas de trabajo se comuniquen con Stackdriver sin que cada autorizado de forma individual (para los planos de control administrados y en el clúster).
Administrador de IAM de proyecto roles/resourcemanager.projectIamAdmin Proyecto de clúster Proporciona permisos para administrar las políticas de IAM en los proyectos.
Administrador de cuenta de servicio roles/iam.serviceAccountAdmin Proyecto de flota Autentica como una cuenta de servicio.
Service Management Admin roles/servicemanagement.admin Proyecto de flota Tiene control completo sobre los recursos de administración de servicios de Google.
Administrador de Service Usage roles/serviceusage.serviceUsageAdmin Proyecto de flota Capacidad de habilitar, inhabilitar e inspeccionar estados de servicio, inspeccionar las operaciones y consumir cuotas y facturación para un consumidor proyecto.(Nota 1)
Administrador del servicio de CA beta roles/privateca.admin Proyecto de flota Tiene acceso completo a todos los recursos del Servicio de CA. (Nota 2)

Notas:

  1. Administrador de Service Usage: Este rol es necesario como requisito previo para habilitar la API de mesh.googleapis.com cuando que aprovisionará inicialmente Cloud Service Mesh administrado.
  2. Administrador del servicio de CA: Este rol solo es necesario si se integran con el servicio de CA.

Instala Cloud Service Mesh

A continuación, se describe cómo instalar Cloud Service Mesh:

  1. Ejecuta asmcli install para instalar el plano de control en el clúster en un solo clúster. Consulta las siguientes secciones para ver ejemplos de línea de comandos. Los ejemplos contienen argumentos obligatorios y opcionales, que pueden resultarte útiles. Te recomendamos que siempre especifiques el argumento output_dir para que para encontrar puertas de enlace y herramientas de muestra, como istioctl. Consulta la barra de navegación de la derecha para obtener una lista de los ejemplos.

  2. De manera opcional, instala una puerta de enlace de entrada. De forma predeterminada, asmcli no se instala istio-ingressgateway. Te recomendamos que implementes y administres el plano de control y las puertas de enlace por separado. Si necesitas que el istio-ingressgateway predeterminado esté instalado con el plano de control en el clúster, incluye el argumento --option legacy-default-ingressgateway.

  3. Para completar la configuración de Cloud Service Mesh, debes habilitar inyección de sidecar implementar o volver a implementar cargas de trabajo.

  4. Si instalas Cloud Service Mesh en más de un clúster, ejecuta asmcli install en cada clúster. Cuando ejecutes asmcli install, asegúrate de usar el mismo FLEET_PROJECT_ID para cada clúster. Después de instalar Cloud Service Mesh, consulta las instrucciones para configura una malla de varios clústeres de Google Cloud.

  5. Si tus clústeres están en redes diferentes (ya que están en modo isla debes pasar un nombre de red único a asmcli con el --network_id.

Instala las funciones predeterminadas y la CA de Mesh

En esta sección, se muestra cómo ejecutar asmcli para instalar Cloud Service Mesh con el funciones compatibles predeterminadas para tu plataforma y habilitar La autoridad certificadora de Cloud Service Mesh como la autoridad certificadora.

Local

Ejecuta los siguientes comandos en Google Distributed Cloud o Google Distributed Cloud instale el plano de control con la configuración y la autoridad certificadora de Cloud Service Mesh. Ingresa los valores en los marcadores de posición proporcionados.

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Ejecuta asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca
    
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • --ca mesh_ca Usar la autoridad certificadora de Cloud Service Mesh como de la autoridad certificadora. asmcliconfigura autoridad certificadora de la malla de servicios de Cloud flota Workload Identity

Para ver los SLO y las métricas de infraestructura en la IU de Cloud Service Mesh, debes hacer lo siguiente: realizar los primeros tres pasos Habilita el registro y la supervisión de la aplicación. Si el registro y la supervisión no están habilitados y no reciben métricas, el panel de Cloud Service Mesh no mostrará SLO, registros de errores ni CPU y las métricas de memoria.

AWS

Ejecuta los siguientes comandos en GKE on AWS para instalar el plano de control con funciones predeterminadas y la autoridad certificadora de Cloud Service Mesh. Ingresa los valores en los marcadores de posición proporcionados.

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Ejecuta asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca
    
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • --ca mesh_ca Usar la autoridad certificadora de Cloud Service Mesh como de la autoridad certificadora. asmcliconfigura autoridad certificadora de la malla de servicios de Cloud flota Workload Identity.

Para ver los SLO y las métricas de infraestructura en la IU de Cloud Service Mesh, debes hacer lo siguiente: realizar los primeros tres pasos Habilita el registro y la supervisión de la aplicación. Si el registro y la supervisión no están habilitados y no reciben métricas, el panel de Cloud Service Mesh no mostrará SLO, registros de errores ni CPU y las métricas de memoria.

Azure

Ejecuta los siguientes comandos en GKE en Azure para instalar el plano de control con las funciones predeterminadas y la autoridad certificadora de Cloud Service Mesh Ingresa los valores en los marcadores de posición proporcionados.

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Ejecuta asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca
    
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • --ca mesh_ca Usar la autoridad certificadora de Cloud Service Mesh como de la autoridad certificadora. asmcliconfigura autoridad certificadora de la malla de servicios de Cloud flota Workload Identity.

Para ver los SLO y las métricas de infraestructura en la IU de Cloud Service Mesh, debes hacer lo siguiente: realizar los primeros tres pasos Habilita el registro y la supervisión de la aplicación. Si el registro y la supervisión no están habilitados y no reciben métricas, el panel de Cloud Service Mesh no mostrará SLO, registros de errores ni CPU y las métricas de memoria.

Amazon EKS

Ejecuta los siguientes comandos en Amazon EKS para instalar el plano de control con las funciones predeterminadas y la autoridad certificadora de Cloud Service Mesh. Ingresa los valores en los marcadores de posición proporcionados.

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Ejecuta asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --option attached-cluster \
      --network_id default \
      --ca mesh_ca
    
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • --option attached-cluster Cambia la firma predeterminada de que sea istiod.
    • --network_id Si configuras una malla de varias redes, Luego, establece el --network_id en un valor único para cada clúster. en la malla.
    • --ca mesh_ca Usar la autoridad certificadora de Cloud Service Mesh como de la autoridad certificadora. asmcliconfigura autoridad certificadora de la malla de servicios de Cloud flota Workload Identity.

Para ver los SLO y las métricas de infraestructura en la IU de Cloud Service Mesh, debes hacer lo siguiente: realizar los primeros tres pasos Habilita el registro y la supervisión de la aplicación. Si el registro y la supervisión no están habilitados y no reciben métricas, el panel de Cloud Service Mesh no mostrará SLO, registros de errores ni CPU y las métricas de memoria.

Microsoft AKS

Ejecuta los siguientes comandos en Microsoft AKS para instalar el plano de control con las funciones predeterminadas y la autoridad certificadora de Cloud Service Mesh. Ingresa los valores en los marcadores de posición proporcionados.

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Ejecuta asmcli install:

    HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --option attached-cluster \
      --network_id default \
      --ca mesh_ca
    
    • HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer Permite el registro con GKE Hub.
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • --option attached-cluster Cambia la firma predeterminada de que sea istiod.
    • --network_id Si configuras una malla de varias redes, Luego, establece el --network_id en un valor único para cada clúster. en la malla.
    • --ca mesh_ca Usar la autoridad certificadora de Cloud Service Mesh como de la autoridad certificadora. asmcliconfigura autoridad certificadora de la malla de servicios de Cloud flota Workload Identity.

Para ver los SLO y las métricas de infraestructura en la IU de Cloud Service Mesh, debes hacer lo siguiente: realizar los primeros tres pasos Habilita el registro y la supervisión de la aplicación. Si el registro y la supervisión no están habilitados y no reciben métricas, el panel de Cloud Service Mesh no mostrará SLO, registros de errores ni CPU y las métricas de memoria.

Instala las funciones predeterminadas y el servicio de autoridad certificadora (CA)

En esta sección, se muestra cómo ejecutar asmcli para instalar Cloud Service Mesh con el valor predeterminado funciones compatibles con tu plataforma y habilita CA Service como autoridad certificadora.

Además de la autoridad certificadora de la malla de servicios de Cloud, puedes configurar Cloud Service Mesh Certificate Authority Service. En esta guía, se te brinda la posibilidad de realizar la integración en el servicio de CA, lo que es recomendable para los siguientes casos de uso:

  • Si necesitas autoridades certificadoras para que firmen certificados de carga de trabajo en diferentes clústeres.
  • Si necesitas respaldar tus claves de firma en un HSM administrado.
  • Si te encuentras en una industria altamente regulada y estás sujeto a cumplimiento.
  • Si quieres encadenar tu CA de Cloud Service Mesh a una raíz empresarial personalizada certificado para firmar certificados de carga de trabajo.

El costo de la autoridad certificadora de la malla de servicios de Cloud se incluye en Precios de Cloud Service Mesh. El CA Service no está incluido en el precio base de Cloud Service Mesh y está se cobra por separado. Además: CA Service incluye un ANS explícito, pero la autoridad certificadora de Cloud Service Mesh no lo hace.

Configura el servicio de CA

  1. Crea el grupo de CA en el nivel DevOps y en la misma región que el clúster al que entrega contenido para evitar problemas de latencia excesiva o posibles interrupciones entre regiones. Para obtener más información, consulta Niveles optimizados según la carga de trabajo.
  2. Crea la CA para tener al menos una autoridad certificadora activa en el grupo de CA en el mismo proyecto que el clúster de GKE. Usa AC subordinadas para firmar certificados de cargas de trabajo de Cloud Service Mesh. Anota el grupo de CA correspondiente a la CA subordinada.
  3. Si solo sirve para entregar certificados de cargas de trabajo de Cloud Service Mesh, la siguiente política de emisión para el grupo de AC:

    policy.yaml

    baselineValues:
      keyUsage:
        baseKeyUsage:
          digitalSignature: true
          keyEncipherment: true
        extendedKeyUsage:
          serverAuth: true
          clientAuth: true
      caOptions:
        isCa: false
    identityConstraints:
      allowSubjectPassthrough: false
      allowSubjectAltNamesPassthrough: true
      celExpression:
        expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )
    
  4. Para actualizar la política de emisión del grupo de CA, usa el siguiente comando:

    gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
    

    Para obtener información sobre cómo configurar una política en un grupo, consulta Usa una política de emisión de certificados.

  5. Si usas una plantilla de certificado, configúrala ahora. A fin de obtener más información, sigue la Guía del servicio de CA para los certificados de identidad de carga de trabajo. Asegúrate de que la plantilla de certificado se cree en la misma región que el grupo de CA. Si hay varias regiones para grupos de CA, crea una plantilla de certificado por región.

Configura Cloud Service Mesh para usar CA Service

Ejecuta los siguientes comandos en Google Distributed Cloud o Google Distributed Cloud para instalar el plano de control con funciones predeterminadas y Certificate Authority Service. Ingresa los valores en los marcadores de posición proporcionados.

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Ejecuta asmcli install:

    ./asmcli install \
      --kubeconfig KUBECONFIG_FILE \
      --fleet_id FLEET_PROJECT_ID \
      --output_dir DIR_PATH \
      --enable_all \
      --ca gcp_cas \
      --platform multicloud \
      --ca_pool  projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL
    
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • --ca gcp_cas Usar Certificate Authority Service como el de la autoridad certificadora. Cambiar las autoridades certificadoras durante una la actualización causa tiempo de inactividad. asmcliconfigura Certificate Authority Service se usará flota Workload Identity
    • --ca_pool: Es el identificador completo del Grupo de AC de Certificate Authority Service. Si usas una plantilla de certificado, agrega el ID de la plantilla separado por :. Por ejemplo:
        --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/CA_POOL_PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID
        
      .

    Para ver los SLO y las métricas de infraestructura en la IU de Cloud Service Mesh, debes hacer lo siguiente: realizar los primeros tres pasos Habilita el registro y la supervisión de la aplicación. Si el registro y la supervisión no están habilitados y no reciben métricas, el panel de Cloud Service Mesh no mostrará SLO, registros de errores ni CPU y las métricas de memoria.

Instala las funciones predeterminadas con la CA de Istio

Esta sección explica cómo:

  • Generar certificados y claves para la CA de Istio que usa Cloud Service Mesh firmar tus cargas de trabajo.
  • Ejecuta asmcli para instalar Cloud Service Mesh con funciones predeterminadas y habilitarlo la AC de Istio.

De forma predeterminada, los entornos que instalan Cloud Service Mesh con las métricas de informes de la AC de Istio a Prometheus. Si quieres usar los paneles de la malla de servicios de Cloud, debes habilitar Stackdriver Para obtener más información, consulta Instala con funciones opcionales.

Para obtener la mayor seguridad, recomendamos enfáticamente que mantengas una CA raíz sin conexión y uses las CA subordinadas a fin de emitir certificados para cada clúster. Para obtener más información, consulta Conecta certificados de CA. En esta configuración, todas las cargas de trabajo en la malla de servicios usan la misma autoridad certificadora raíz (CA). Cada AC de la malla de servicios de Cloud usa una AC intermedia. clave de firma y certificado, firmados por la AC raíz. Cuando existen varias CA dentro de una malla, se establece una jerarquía de confianza entre las CA. Puedes repetir estos pasos a fin de aprovisionar certificados y claves para cualquier cantidad de autoridades certificadoras.

El makefile para generar los certificados se encuentra en el subdirectorio istio-1.21.4-asm.5 en el directorio --output_dir que especificaste en el comando asmcli validate. Si no ejecutaste asmcli validate, o si no tienes el directorio descargado localmente, puedes obtener el archivo Make descarga el archivo de instalación de Cloud Service Mesh y extrayendo el contenido.

  1. Cambia al directorio istio-1.21.4-asm.5.

  2. Crea un directorio para los certificados y las claves:

    mkdir -p certs && \
    pushd certs
  3. Genera un certificado raíz y una clave:

    make -f ../tools/certs/Makefile.selfsigned.mk root-ca
    

    Esto genera los siguientes archivos:

    • root-cert.pem: El certificado raíz
    • root-key.pem: La clave raíz
    • root-ca.conf: La configuración para openssl a fin de generar el certificado raíz
    • root-cert.csr: La CSR para el certificado raíz
  4. Genera un certificado intermedio y una clave:

    make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts

    Con esta acción, se generan estos archivos en un directorio llamado cluster1:

    • ca-cert.pem: Los certificados intermedios
    • ca-key.pem: La clave intermedia
    • cert-chain.pem: La cadena de certificados que usa istiod
    • root-cert.pem: El certificado raíz

    Si sigues estos pasos con una computadora sin conexión, copia el directorio generado a una computadora con acceso a los clústeres.

  5. Regresa al directorio anterior:

    popd
  6. Ejecuta asmcli para instalar una malla mediante la CA de Istio:

    Local

    Ejecuta los siguientes comandos en Google Distributed Cloud o Google Distributed Cloud para instalar el plano de control con atributos predeterminados y la AC de Istio. Ingresa los valores en los marcadores de posición proporcionados.

    1. Configura el contexto actual en tu clúster de usuario:

      kubectl config use-context CLUSTER_NAME
      
    2. Ejecuta asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id El ID del proyecto host de la flota.
      • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
      • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
      • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
      • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
        • Otorga los permisos de IAM necesarios.
        • Habilita las API de Google necesarias.
        • Configura una etiqueta en el clúster que identifique la malla.
        • Registra el clúster en la flota si aún no está registrado.
      • -ca citadel Usa la CA de Istio como la autoridad certificada.
      • --ca_cert: Es el certificado intermedio.
      • --ca_key: Es la clave para el certificado intermedio.
      • --root_cert: Es el certificado raíz.
      • --cert_chain: Es la cadena de certificados.

    AWS

    Ejecuta los siguientes comandos en GKE en AWS para instalar el control con atributos predeterminados y la AC de Istio. Ingresa los valores en los marcadores de posición proporcionados. Puedes optar por habilitar Ingress para la subred pública o privada.

    Pública

    1. Configura el contexto actual en tu clúster de usuario:

      kubectl config use-context CLUSTER_NAME
      
    2. Ejecuta asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id El ID del proyecto host de la flota.
      • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
      • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
      • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
      • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
        • Otorga los permisos de IAM necesarios.
        • Habilita las API de Google necesarias.
        • Configura una etiqueta en el clúster que identifique la malla.
        • Registra el clúster en la flota si aún no está registrado.
      • -ca citadel Usa la CA de Istio como la autoridad certificada.
      • --ca_cert es el certificado intermedio.
      • --ca_key es la clave para el certificado intermedio.
      • --root_cert es el certificado raíz.
      • --cert_chain es la cadena de certificados.

    Privada

    1. Configura el contexto actual en tu clúster de usuario:

      kubectl config use-context CLUSTER_NAME
      
    2. Guarda el siguiente YAML en un archivo llamado istio-operator-internal-lb.yaml:

      apiVersion: install.istio.io/v1alpha1
      kind: IstioOperator
      spec:
        components:
          ingressGateways:
          - enabled: true
            k8s:
              serviceAnnotations:
                service.beta.kubernetes.io/aws-load-balancer-internal: "true"
            name: istio-ingressgateway
      
    3. Ejecuta asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert FILE_PATH \
        --ca_key FILE_PATH \
        --root_cert FILE_PATH \
        --cert_chain FILE_PATH \
        --custom_overlay istio-operator-internal-lb.yaml
      
      • --fleet_id El ID del proyecto host de la flota.
      • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
      • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
      • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
      • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
        • Otorga los permisos de IAM necesarios.
        • Habilita las API de Google necesarias.
        • Configura una etiqueta en el clúster que identifique la malla.
        • Registra el clúster en la flota si aún no está registrado.
      • -ca citadel Usa la CA de Istio como la autoridad certificada.
      • --ca_cert es el certificado intermedio.
      • --ca_key es la clave para el certificado intermedio.
      • --root_cert es el certificado raíz.
      • --cert_chain es la cadena de certificados.
      • --custom_overlay El nombre del archivo de superposición creado. Para obtener más información sobre los archivos de superposición, consulta Habilita funciones opcionales en el plano de control del clúster.

    Azure

    Ejecuta los siguientes comandos en GKE en Azure para instalar el plano de control con atributos predeterminados y la AC de Istio Ingresa los valores en los marcadores de posición proporcionados. Puedes optar por habilitar Ingress para la subred pública o privada.

    Pública

    1. Configura el contexto actual en tu clúster de usuario:

      kubectl config use-context CLUSTER_NAME
      
    2. Ejecuta asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id El ID del proyecto host de la flota.
      • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
      • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
      • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
      • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
        • Otorga los permisos de IAM necesarios.
        • Habilita las API de Google necesarias.
        • Configura una etiqueta en el clúster que identifique la malla.
        • Registra el clúster en la flota si aún no está registrado.
      • -ca citadel Usa la CA de Istio como la autoridad certificada.
      • --ca_cert es el certificado intermedio.
      • --ca_key es la clave para el certificado intermedio.
      • --root_cert es el certificado raíz.
      • --cert_chain es la cadena de certificados.

    Privada

    1. Configura el contexto actual en tu clúster de usuario:

      kubectl config use-context CLUSTER_NAME
      
    2. Guarda el siguiente YAML en un archivo llamado istio-operator-internal-lb.yaml:

      apiVersion: install.istio.io/v1alpha1
      kind: IstioOperator
      spec:
        components:
          ingressGateways:
          - enabled: true
            k8s:
              serviceAnnotations:
                service.beta.kubernetes.io/aws-load-balancer-internal: "true"
            name: istio-ingressgateway
      
    3. Ejecuta asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert FILE_PATH \
        --ca_key FILE_PATH \
        --root_cert FILE_PATH \
        --cert_chain FILE_PATH \
        --custom_overlay istio-operator-internal-lb.yaml
      
      • --fleet_id El ID del proyecto host de la flota.
      • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
      • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
      • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
      • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
        • Otorga los permisos de IAM necesarios.
        • Habilita las API de Google necesarias.
        • Configura una etiqueta en el clúster que identifique la malla.
        • Registra el clúster en la flota si aún no está registrado.
      • -ca citadel Usa la CA de Istio como la autoridad certificada.
      • --ca_cert es el certificado intermedio.
      • --ca_key es la clave para el certificado intermedio.
      • --root_cert es el certificado raíz.
      • --cert_chain es la cadena de certificados.
      • --custom_overlay El nombre del archivo de superposición creado. Para obtener más información sobre los archivos de superposición, consulta Habilita funciones opcionales en el plano de control del clúster.

    Amazon EKS

    Ejecuta los siguientes comandos en Amazon EKS para instalar el plano de control con las funciones predeterminadas y la CA de Istio. Ingresa los valores en los marcadores de posición proporcionados.

    1. Configura el contexto actual en tu clúster de usuario:

      kubectl config use-context CLUSTER_NAME
      
    2. Ejecuta asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --option attached-cluster \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH \
        --network_id default
      
      • --fleet_id El ID del proyecto host de la flota.
      • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
      • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
      • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
      • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
        • Otorga los permisos de IAM necesarios.
        • Habilita las API de Google necesarias.
        • Configura una etiqueta en el clúster que identifique la malla.
        • Registra el clúster en la flota si aún no está registrado.
      • --option attached-cluster Cambia la firma predeterminada de que sea istiod.
      • -ca citadel Usa la CA de Istio como la autoridad certificada.
      • --ca_cert: Es el certificado intermedio.
      • --ca_key: Es la clave para el certificado intermedio.
      • --root_cert: Es el certificado raíz.
      • --cert_chain: Es la cadena de certificados.
      • --network_id Si estás configurando una red múltiples y, luego, establece --network_id en un valor único para cada clúster en la malla.

    Microsoft AKS

    Ejecuta los siguientes comandos en Microsoft AKS para instalar el plano de control con las funciones predeterminadas y la CA de Istio. Ingresa los valores en los marcadores de posición proporcionados.

    1. Configura el contexto actual en tu clúster de usuario:

      kubectl config use-context CLUSTER_NAME
      
    2. Ejecuta asmcli install:

      HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --option attached-cluster \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH \
        --network_id default
      
      • HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer Permite el registro con GKE Hub.
      • --fleet_id El ID del proyecto host de la flota.
      • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
      • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
      • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
      • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
        • Otorga los permisos de IAM necesarios.
        • Habilita las API de Google necesarias.
        • Configura una etiqueta en el clúster que identifique la malla.
        • Registra el clúster en la flota si aún no está registrado.
      • --option attached-cluster Cambia la firma predeterminada de que sea istiod.
      • -ca citadel Usa la CA de Istio como la autoridad certificada.
      • --ca_cert Es el certificado intermedio.
      • --ca_key: Es la clave para el certificado intermedio.
      • --root_cert: Es el certificado raíz.
      • --cert_chain: Es la cadena de certificados.
      • --network_id Si estás configurando una red múltiples y, luego, establece --network_id en un valor único para cada clúster en la malla.

Instala con la AC de Istio y habilita la observabilidad de Google Cloud

Si quieres usar los paneles de Cloud Service Mesh, debes habilitar Stackdriver.

Local

Ejecuta los siguientes comandos en Google Distributed Cloud o Google Distributed Cloud para instalar el plano de control con Stackdriver y otras características opcionales y la AC de Istio. Ingresa los valores en los marcadores de posición proporcionados.

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Ejecuta asmcli install:

    ./asmcli install \
       --fleet_id FLEET_PROJECT_ID \
       --kubeconfig KUBECONFIG_FILE \
       --output_dir DIR_PATH \
       --platform multicloud \
       --enable_all \
       --ca citadel \
       --ca_cert CA_CERT_FILE_PATH \
       --ca_key CA_KEY_FILE_PATH \
       --root_cert ROOT_CERT_FILE_PATH \
       --cert_chain CERT_CHAIN_FILE_PATH
    
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • -ca citadel Usa la CA de Istio como la autoridad certificada.
    • --ca_cert: Es el certificado intermedio.
    • --ca_key: Es la clave para el certificado intermedio.
    • --root_cert: Es el certificado raíz.
    • --cert_chain: Es la cadena de certificados.
    • --option stackdriver Habilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus mediante --option prometheus-and-stackdriver.

    Para ver los SLO y las métricas de infraestructura en la IU de Cloud Service Mesh, debes hacer lo siguiente: realizar los primeros tres pasos Habilita el registro y la supervisión de la aplicación. Si el registro y la supervisión no están habilitados y no reciben métricas, el panel de Cloud Service Mesh no mostrará SLO, registros de errores ni CPU y las métricas de memoria.

AWS

Ejecuta los siguientes comandos en GKE en AWS para instalar el control con Stackdriver y otras funciones opcionales y la CA de Istio. Ingresa los valores en los marcadores de posición proporcionados. Puedes optar por habilitar Ingress para la subred pública o privada.

Pública

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Ejecuta asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver
    
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • -ca citadel Usa la CA de Istio como la autoridad certificada.
    • --ca_cert es el certificado intermedio.
    • --ca_key es la clave para el certificado intermedio.
    • --root_cert es el certificado raíz.
    • --cert_chain es la cadena de certificados.
    • --option stackdriver Habilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus mediante --option prometheus-and-stackdriver.

Privada

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Guarda el siguiente YAML en un archivo llamado istio-operator-internal-lb.yaml:

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      components:
        ingressGateways:
        - enabled: true
          k8s:
            serviceAnnotations:
              service.beta.kubernetes.io/aws-load-balancer-internal: "true"
          name: istio-ingressgateway
    
  3. Ejecuta asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert FILE_PATH \
      --ca_key FILE_PATH \
      --root_cert FILE_PATH \
      --cert_chain FILE_PATH
      --custom_overlay istio-operator-internal-lb.yaml \
      --option stackdriver
    
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • -ca citadel Usa la CA de Istio como la autoridad certificada.
    • --ca_cert es el certificado intermedio.
    • --ca_key es la clave para el certificado intermedio.
    • --root_cert es el certificado raíz.
    • --cert_chain es la cadena de certificados.
    • --custom_overlay El nombre del archivo de superposición creado. Para obtener más información sobre los archivos de superposición, consulta Habilita funciones opcionales en el plano de control del clúster.
    • --option stackdriver Habilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus mediante --option prometheus-and-stackdriver. De manera alternativa, puedes habilitar Stackdriver con --custom_overlay stackdriver.yaml. Debes descargar el archivo de anthos-service-mesh-package o crear stackdriver.yaml desde el manifiesto proporcionado.

Azure

Ejecuta los siguientes comandos en GKE en Azure para instalar el plano de control con Stackdriver y otras funciones opcionales, la AC de Istio. Ingresa los valores en los marcadores de posición proporcionados. Puedes elegir habilitar Ingress para la subred pública o la privada.

Pública

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Ejecuta asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver
    
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • -ca citadel Usa la CA de Istio como la autoridad certificada.
    • --ca_cert es el certificado intermedio.
    • --ca_key es la clave para el certificado intermedio.
    • --root_cert es el certificado raíz.
    • --cert_chain es la cadena de certificados.
    • --option stackdriver Habilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus mediante --option prometheus-and-stackdriver.

Privada

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Guarda el siguiente YAML en un archivo llamado istio-operator-internal-lb.yaml:

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      components:
        ingressGateways:
        - enabled: true
          k8s:
            serviceAnnotations:
              service.beta.kubernetes.io/aws-load-balancer-internal: "true"
          name: istio-ingressgateway
    
  3. Ejecuta asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert FILE_PATH \
      --ca_key FILE_PATH \
      --root_cert FILE_PATH \
      --cert_chain FILE_PATH
      --custom_overlay istio-operator-internal-lb.yaml \
      --option stackdriver
    
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • -ca citadel Usa la CA de Istio como la autoridad certificada.
    • --ca_cert es el certificado intermedio.
    • --ca_key es la clave para el certificado intermedio.
    • --root_cert es el certificado raíz.
    • --cert_chain es la cadena de certificados.
    • --custom_overlay El nombre del archivo de superposición creado. Para obtener más información sobre los archivos de superposición, consulta Habilita funciones opcionales en el plano de control del clúster.
    • --option stackdriver Habilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus mediante --option prometheus-and-stackdriver. De manera alternativa, puedes habilitar Stackdriver con --custom_overlay stackdriver.yaml. Debes descargar el archivo de anthos-service-mesh-package o crear stackdriver.yaml desde el manifiesto proporcionado.

Amazon EKS

Ejecuta los siguientes comandos en Amazon EKS para instalar el plano de control con Stackdriver y otras funciones opcionales, además de la CA de Istio Ingresa los valores en los marcadores de posición proporcionados.

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Ejecuta asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver \
      --option attached-cluster
    
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • -ca citadel Usa la CA de Istio como la autoridad certificada.
    • --ca_cert: Es el certificado intermedio.
    • --ca_key: Es la clave para el certificado intermedio.
    • --root_cert: Es el certificado raíz.
    • --cert_chain: Es la cadena de certificados.
    • --option stackdriver Habilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus mediante --option prometheus-and-stackdriver.
    • --option stackdriver Cambia la utilidad de firma predeterminada para que sea istiod.

Microsoft AKS

Ejecuta los siguientes comandos en Microsoft AKS para instalar el plano de control con las funciones predeterminadas y la CA de Istio. Ingresa los valores en los marcadores de posición proporcionados.

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Ejecuta asmcli install:

    HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver \
      --option attached-cluster
    
    • HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer Permite el registro con GKE Hub.
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • -ca citadel Usa la CA de Istio como la autoridad certificada.
    • --ca_cert Es el certificado intermedio.
    • --ca_key: Es la clave para el certificado intermedio.
    • --root_cert: Es el certificado raíz.
    • --cert_chain: Es la cadena de certificados.
    • --option stackdriver Habilita la opción Stackdriver. Ten en cuenta que también puedes habilitar Stackdriver y Prometheus mediante --option prometheus-and-stackdriver.
    • --option stackdriver Cambia la utilidad de firma predeterminada para que sea istiod.

Instala con funciones opcionales

Un archivo de superposición es un archivo YAML que contiene un recurso personalizado (CR) IstioOperator que pasas a asmcli para configurar el plano de control. Puedes anular la configuración predeterminada del plano de control y habilitar una función opcional si pasas el archivo YAML a asmcli. Puedes agregar capas a más superposiciones, y cada archivo superpuesto anula la configuración de las capas anteriores. Como recomendación, te sugerimos que guardes los archivos de superposición en tu sistema de control de versión.

Existen dos opciones para habilitar las funciones opcionales: --option y --custom_overlay.

Usa --option si no necesitas cambiar el archivo de superposición. Con este método, asmcli recupera el archivo de la Repositorio de GitHub por ti.

Usa --custom_overlay cuando necesites personalizar el archivo de superposición.

Para obtener más información, consulta Habilita funciones opcionales en el plano de control del clúster.

Ejecuta los siguientes comandos en Google Distributed Cloud: Google Distributed Cloud, GKE en AWS, GKE en Azure, Amazon EKS o Microsoft AKS. Ingresa los valores en los marcadores de posición proporcionados.

  1. Configura el contexto actual en tu clúster de usuario:

    kubectl config use-context CLUSTER_NAME
    
  2. Ejecuta asmcli install para instalar el plano de control con una función opcional. Para agregar varios archivos, especifica --custom_overlay y el nombre del archivo, por ejemplo: --custom_overlayoverlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml

    ./asmcli install \
    --fleet_id FLEET_PROJECT_ID \
    --kubeconfig KUBECONFIG_FILE \
    --output_dir DIR_PATH \
    --platform multicloud \
    --enable_all \
    --ca mesh_ca \
    --custom_overlay OVERLAY_FILE
    
    • --fleet_id El ID del proyecto host de la flota.
    • --kubeconfig La ruta de acceso completa al archivo kubeconfig. La variable de entorno $PWD no funciona aquí. Además: las ubicaciones de archivos kubeconfig relativas que usan el símbolo "~" no funcionarán.
    • --output_dir incluye esta opción para especificar un directorio en el que asmcli descarga el paquete anthos-service-mesh y extrae el archivo de instalación, que contiene istioctl, muestras y manifiestos. De lo contrario, asmcli descarga los archivos en un directorio tmp. Puedes especificar una ruta de acceso relativa o una completa. La variable de entorno $PWD no funciona aquí.
    • --platform multicloud especifica que la plataforma es algo distinto de Google Cloud, como el entorno local o las múltiples nubes.
    • --enable_all permite que la secuencia de comandos realice las siguientes acciones:
      • Otorga los permisos de IAM necesarios.
      • Habilita las API de Google necesarias.
      • Configura una etiqueta en el clúster que identifique la malla.
      • Registra el clúster en la flota si aún no está registrado.
    • --ca mesh_ca Usar la autoridad certificadora de Cloud Service Mesh como de la autoridad certificadora. Ten en cuenta que asmcli configura autoridad certificadora de la malla de servicios de Cloud flota Workload Identity
    • --custom_overlay Especifica el nombre del archivo de superposición.

Instala puertas de enlace

Cloud Service Mesh te da la opción de implementar y administrar puertas de enlace como parte de tu malla de servicios. Una puerta de enlace describe un balanceador de cargas que opera en el perímetro de la malla que recibe conexiones HTTP/TCP entrantes o salientes. Las puertas de enlace son proxies de Envoy que te brindan un control detallado sobre el tráfico que entra y sale de la malla.

  1. Crea un espacio de nombres para la puerta de enlace de entrada si aún no tienes uno. Las puertas de enlace son cargas de trabajo de usuarios y, como práctica recomendada, no deben implementarse en el espacio de nombres del plano de control. Reemplaza GATEWAY_NAMESPACE por el nombre de tu espacio de nombres.

    kubectl create namespace GATEWAY_NAMESPACE
    

    Resultado esperado:

    namespace/GATEWAY_NAMESPACE created
    
  2. Habilita la inserción automática en la puerta de enlace. Los pasos necesarios dependen de si que quieras usar etiquetas de inyección predeterminadas (por ejemplo, istio-injection=enabled) o etiqueta de revisión en la puerta de enlace espacio de nombres. El webhook de inyector de archivo adicional usa la etiqueta de revisión predeterminada y la etiqueta de revisión predeterminadas para asociar los proxies insertados con una revisión específica del plano de control.

    1. Si usaste una revisión de etiqueta predeterminada para habilitar la inserción automática verifica que exista la etiqueta predeterminada en el directorio que especificado en --output_dir y que apunta a la interfaz de usuario a los cambios en el software.

      DIR_PATH/istioctl tag list
      
    2. Aplica las etiquetas de inserción predeterminadas al espacio de nombres.

      kubectl label namespace GATEWAY_NAMESPACE istio-injection=enabled istio.io/rev-
      

    Etiqueta de revisión

    1. Usa el siguiente comando para encontrar la etiqueta de revisión en istiod:

      kubectl get deploy -n istio-system -l app=istiod -o \
        "jsonpath={.items[*].metadata.labels['istio\.io/rev']}{'\n'}"
      

      El comando genera la etiqueta de revisión que corresponde al La versión de Cloud Service Mesh, por ejemplo: asm-1214-5

    2. Aplica la etiqueta de revisión a los espacios de nombres. En el siguiente comando, REVISION es el valor de la etiqueta de revisión istiod que anotaste en el paso anterior.

      kubectl label namespace GATEWAY_NAMESPACE \
        istio.io/rev=REVISION --overwrite
      

      Resultado esperado:

      namespace/GATEWAY_NAMESPACE labeled
      

    Puedes ignorar el mensaje "istio.io/rev" not found en el resultado. Eso significa que el espacio de nombres no tenía el elemento istio.io/rev, que debes encontrar en las instalaciones nuevas de Cloud Service Mesh o implementaciones nuevas. Porque la inserción automática falla si un espacio de nombres tiene tanto istio.io/rev como istio-injection etiqueta, todos los comandos kubectl label en Cloud Service Mesh en la documentación especifica de forma explícita ambas etiquetas.

    Si el espacio de nombres de la puerta de enlace no está etiquetado, los Pods istio-ingressgateway fallará con un error ImagePullBackOff cuando la puerta de enlace intente extraer y la imagen auto. El webhook debe reemplazar esta imagen.

  3. Descarga el archivo de configuración .yaml de la puerta de enlace de entrada de ejemplo desde Repositorio anthos-service-mesh-packages.

  4. Aplica la configuración .yaml de la puerta de enlace de entrada de ejemplo tal como está o modifícala como según tus necesidades.

    kubectl apply -n GATEWAY_NAMESPACE \
      -f CONFIG_PATH/istio-ingressgateway
    

    Resultado esperado:

    deployment.apps/istio-ingressgateway created
    poddisruptionbudget.policy/istio-ingressgateway created
    horizontalpodautoscaler.autoscaling/istio-ingressgateway created
    role.rbac.authorization.k8s.io/istio-ingressgateway created
    rolebinding.rbac.authorization.k8s.io/istio-ingressgateway created
    service/istio-ingressgateway created
    serviceaccount/istio-ingressgateway created
    

Obtén más información sobre las prácticas recomendadas para las puertas de enlace.

Implementa y vuelve a implementar las cargas de trabajo

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

La instalación no estará completa hasta que habilites el proxy automático de sidecar (inserción automática) y reiniciar los Pods para cualquier carga de trabajo que se ejecutaban en tu clúster antes de instalar Cloud Service Mesh.

Para habilitar la inserción automática, debes etiquetar tus espacios de nombres con el etiquetas de inyección predeterminadas si está configurada la etiqueta predeterminada, o bien una etiqueta de revisión que se configuró el istiod cuando instalaste Cloud Service Mesh. El webhook de inyector de archivo adicional usa la etiqueta de revisión predeterminada y la etiqueta de revisión para asociar los archivos adicionales incorporados con una revisión istiod. Después de agregar la etiqueta, los Pods existentes en el espacio de nombres deben reiniciarse para que se inserten los sidecars.

Antes de implementar cargas de trabajo nuevas en un espacio de nombres nuevo, asegúrate de configurar insertar automáticamente para que Cloud Service Mesh pueda supervisar y proteger el tráfico.

  1. Los pasos necesarios para habilitar la inserción automática dependen de si deseas usar las etiquetas de inserción predeterminadas o la etiqueta de revisión:

    1. Si usaste una revisión de etiqueta predeterminada para habilitar la inserción automática verifica que exista la etiqueta predeterminada en el directorio que especificado en --output_dir y que apunta a la interfaz de usuario a los cambios en el software.

      DIR_PATH/istioctl tag list
      
    2. Ejecuta el siguiente comando. NAMESPACE es el nombre del espacio de nombres en el que quieras habilitar la inserción automática.

      kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev-
      

    Las etiquetas de inyección predeterminadas insertan la revisión apunta la etiqueta predeterminada.

    Etiqueta de revisión

    1. Usa el siguiente comando para encontrar la etiqueta de revisión en istiod:

      kubectl -n istio-system get pods -l app=istiod --show-labels
      

      El resultado es similar al siguiente:

      NAME                                READY   STATUS    RESTARTS   AGE   LABELS
      istiod-asm-1214-5-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-1214-5,istio=istiod,pod-template-hash=5788d57586
      istiod-asm-1214-5-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-1214-5,istio=istiod,pod-template-hash=5788d57586

      En el resultado, en la columna LABELS, observa el valor de la etiqueta de revisión istiod, que está después del prefijo istio.io/rev=. En este ejemplo, el valor es asm-1214-5.

    2. Aplica la etiqueta de revisión y quita la etiqueta istio-injection si existe. En el siguiente comando, NAMESPACE es el nombre del espacio de nombres en el que deseas habilitar la inserción automática y REVISION es la etiqueta de revisión que anotaste en el paso anterior.

      kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
      

      Puedes ignorar el mensaje "istio-injection not found" en el resultado. Eso significa que el espacio de nombres no tenía el elemento Etiqueta istio-injection, que debes esperar en los nuevos o implementaciones nuevas de la malla de servicios de Cloud. Debido a que la inserción automática el comportamiento no está definido cuando un espacio de nombres tiene tanto istio-injection y la etiqueta de revisión, todos los comandos kubectl label del La documentación de Cloud Service Mesh garantiza de forma explícita que solo se configure uno de ellos.

  2. Si las cargas de trabajo se ejecutaban en tu clúster antes de instalarla Cloud Service Mesh, reinicia los Pods para activar la reinserción.

    La forma de reiniciar los pods depende de tu aplicación y del entorno en el que se encuentra el clúster. Por ejemplo, en el entorno de etapa de pruebas, puedes borrar todos los pods, lo que hace que se reinicien. Pero en tu producción es posible que tengas un proceso que implemente implementación azul-verde para reiniciar los Pods de forma segura y evitar la interrupción del tráfico.

    Puedes usar kubectl para realizar un reinicio progresivo:

    kubectl rollout restart deployment -n NAMESPACE
    

Próximos pasos