Instala Anthos Service Mesh

En esta página se explica cómo:

  • Ejecuta asmcli para realizar una instalación nueva de Anthos Service Mesh 1.23.3-asm.2.
  • 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.

Antes de comenzar

Antes de comenzar, asegúrate de lo siguiente:

Instala Anthos Service Mesh

A continuación, se describe cómo instalar Anthos 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 poder ubicar fácilmente puertas de enlace y herramientas de ejemplo, como istioctl. Consulta la barra de navegación de la derecha para ver 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 Anthos Service Mesh, debes habilitar la inyección automática del archivo adicional y, luego, implementar o volver a implementar las cargas de trabajo.

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

  5. Si tus clústeres están en redes diferentes (como están en el modo isla), debes pasar un nombre de red único a asmcli mediante la marca --network_id.

Instala las funciones predeterminadas y la CA de Mesh

En esta sección, se muestra cómo ejecutar asmcli para instalar Anthos Service Mesh con las funciones compatibles predeterminadas en tu plataforma y habilitar la autoridad certificadora (CA de Mesh) de Anthos Service Mesh como certificado. autoridad

GKE

Ejecuta el siguiente comando para instalar el plano de control con las funciones predeterminadas y con la CA de Mesh. Ingresa los valores en los marcadores de posición proporcionados.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca mesh_ca
  • --project_id, --cluster_name y --cluster_location Especifica el ID del proyecto en el que se encuentra el clúster, el nombre del clúster y la zona o región del clúster.
  • --fleet_id El ID del proyecto host de la flota. Si no incluyes esta opción, asmcli usará el proyecto en el que se creó el clúster cuando este se registró.
  • --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í.
  • --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 usa la CA de Mesh como autoridad certificada. asmcli configura la CA de Mesh para que use identidad de carga de trabajo de flota.

Local

Ejecuta los siguientes comandos en los clústeres de Anthos alojados en VMware o Anthos en el equipo físico para instalar el plano de control con funciones predeterminadas y la CA de 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í.
    • --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 local es la plataforma.
    • --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 usa la CA de Mesh como autoridad certificada. asmcli configura la CA de Mesh para que use identidad de carga de trabajo de flota.

Instala las funciones predeterminadas y el servicio de CA

En esta sección, se muestra cómo ejecutar asmcli para instalar Anthos Service Mesh con las funciones compatibles predeterminadas en tu plataforma y habilitar el Servicio de CA como autoridad certificadora.

Además de la CA de Mesh, puedes configurar Anthos Service Mesh para que use Certificate Authority Service. En esta guía, se te brinda la posibilidad de realizar la integración en el servicio de CA, que esperamos sea adecuado para los siguientes casos de uso:

  • Si necesitas autoridades certificadoras para que firmen certificados de carga de trabajo en diferentes clústeres.
  • Si deseas usar certificados de complemento de CA personalizadas de Istio.
  • Si necesitas respaldar tus claves de firma en un HSM administrado por Google.
  • Si te encuentras en una industria altamente regulada y estás sujeto a cumplimiento.
  • Si deseas encadenar tu CA de Anthos Service Mesh a un certificado raíz personalizado de empresa para firmar certificados de carga de trabajo.

El costo de la CA de Mesh se incluye en el precio de Anthos Service Mesh. El servicio de CA no está incluido en el precio base de Anthos Service Mesh y se cobra por separado. Además, el servicio de CA viene con un ANS explícito, pero la CA de Mesh no lo hace.

Para esta integración, a todas las cargas de trabajo en Anthos Service Mesh se les otorgan dos funciones de IAM:

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 CA subordinadas para firmar certificados de carga de trabajo de Anthos Service Mesh. Anota el grupo de CA correspondiente a la CA subordinada.
  3. Si está destinado solo a certificados de servicio para cargas de trabajo de Anthos Service Mesh, configura la siguiente política de emisión para el grupo de CA:

    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.

Configura Anthos Service Mesh para usar el servicio de CA

GKE

  1. Instala el plano de control de Anthos Service Mesh que usa Certificate Authority Service como la CA:

    ./asmcli install \
    --project_id PROJECT_ID \
    --cluster_name CLUSTER_NAME \
    --cluster_location CLUSTER_LOCATION \
    --enable_all \
    --ca gcp_cas \
    --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í.
    • --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 local es la plataforma.
    • --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: Usa Certificate Authority Service como la autoridad certificadora. Cambiar las autoridades certificadoras durante una actualización provoca tiempo de inactividad. asmcli configura Certificate Authority Service para usar la identidad de carga de trabajo de flota
    • --ca_pool El identificador completo del grupo de CA de Certificate Authority Service.
  2. Instala una puerta de enlace de entrada para recibir conexiones HTTP/TCP entrantes o salientes. Para obtener detalles, consulta Instala puertas de enlace.

  3. Completa la instalación de Anthos Service Mesh para habilitar la inserción automática del proxy de sidecar en tus cargas de trabajo. Para obtener más información, consulta Implementa y vuelve a implementar cargas de trabajo.

Local

Ejecuta los siguientes comandos en clústeres de Anthos alojados en VMware o Anthos alojados en equipos físicos 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í.
    • --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 local es la plataforma.
    • --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: Usa Certificate Authority Service como la autoridad certificadora. Cambiar las autoridades certificadoras durante una actualización provoca tiempo de inactividad. asmcli configura Certificate Authority Service para usar la identidad de carga de trabajo de flota
    • --ca_pool El identificador completo del grupo de CA de Certificate Authority Service.

Instala las funciones predeterminadas con la CA de Istio

Esta sección explica cómo:

  • Genera certificados y claves para la CA de Istio que usa Anthos Service Mesh a fin de firmar tus cargas de trabajo.
  • Ejecuta asmcli para instalar Anthos Service Mesh con las funciones predeterminadas y habilita la CA de Istio.

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 CA de Anthos Service Mesh usa una clave y un certificado intermedios de firma de CA firmados por la CA 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 certificadas.

El makefile para generar los certificados se encuentra en el subdirectorio istio-1.23.3-asm.1 en el directorio --output_dir que especificaste en el comando asmcli validate. Si no ejecutaste asmcli validate o no tienes el directorio descargado de manera local, puedes obtener el makefile si descargas el archivo de instalación de Anthos Service Mesh y extraes el contenido.

  1. Cambia al directorio istio-1.23.3-asm.1.

  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 Istio
    • 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:

    GKE

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

     ./asmcli install \
       --project_id PROJECT_ID \
       --cluster_name CLUSTER_NAME \
       --cluster_location CLUSTER_LOCATION \
       --fleet_id FLEET_PROJECT_ID \
       --output_dir DIR_PATH \
       --enable_all \
       --ca citadel \
       --ca_cert FILE_PATH \
       --ca_key FILE_PATH \
       --root_cert FILE_PATH \
       --cert_chain FILE_PATH
    

    • --project_id, --cluster_name y --cluster_location Especifica el ID del proyecto en el que se encuentra el clúster, el nombre del clúster y la zona o región del clúster.
    • --fleet_id El ID del proyecto host de la flota. Si no incluyes esta opción, asmcli usará el proyecto en el que se creó el clúster cuando este se registró.
    • --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í.
    • --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.

    Local

    Ejecuta los siguientes comandos en los clústeres de Anthos alojados en VMware o Anthos en el equipo físico para instalar el plano de control con 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 \
        --ca citadel \
        --ca_cert FILE_PATH \
        --ca_key FILE_PATH \
        --root_cert FILE_PATH \
        --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í.
      • --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 local es la plataforma.
      • --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 los clústeres de Anthos en AWS 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. 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 FILE_PATH \
        --ca_key FILE_PATH \
        --root_cert FILE_PATH \
        --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í.
      • --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 local es la plataforma.
      • --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í.
      • --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 local es la plataforma.
      • --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.

    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 \
        --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í.
      • --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 local es la plataforma.
      • --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.

    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 FILE_PATH \
        --ca_key FILE_PATH \
        --root_cert FILE_PATH \
        --cert_chain FILE_PATH
      
      • 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í.
      • --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 local es la plataforma.
      • --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.

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.

GKE

Ejecuta el siguiente comando 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. Ingresa los valores en los marcadores de posición proporcionados.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca mesh_ca \
  --custom_overlay OVERLAY_FILE
  • --project_id, --cluster_name y --cluster_location Especifica el ID del proyecto en el que se encuentra el clúster, el nombre del clúster y la zona o región del clúster.
  • --fleet_id El ID del proyecto host de la flota. Si no incluyes esta opción, asmcli usará el proyecto en el que se creó el clúster cuando este se registró.
  • --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í.
  • --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 Usa la CA de Istio como la autoridad certificadora. Ten en cuenta que asmcli configura la CA de Mesh para usar la identidad de carga de trabajo de flota.
  • --custom_overlay Especifica el nombre del archivo de superposición.

Fuera de Google Cloud

Ejecuta los siguientes comandos en clústeres de Anthos alojados en VMware, Anthos en equipos físicos, clústeres de Anthos en AWS, 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í.
    • --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 local es la plataforma.
    • --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 Usa la CA de Istio como la autoridad certificadora. Ten en cuenta que asmcli configura la CA de Mesh para usar la identidad de carga de trabajo de flota.
    • --custom_overlay Especifica el nombre del archivo de superposición.

Instala puertas de enlace

Anthos Service Mesh te brinda 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 mediante la aplicación de una etiqueta de revisión en el espacio de nombres de la puerta de enlace. El webhook de inyector de sidecar usa la etiqueta de revisión para asociar los proxies insertados con una revisión de plano de control en particular.

    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 a la versión de Anthos Service Mesh, por ejemplo: asm-1233-2.

    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
      
  3. Cambia al directorio que especificaste en --output_dir.

  4. Puedes implementar la configuración de la puerta de enlace de entrada de ejemplo que se ubica en el directorio samples/gateways/istio-ingressgateway/ tal como está o modificarla según sea necesario.

    kubectl apply -n GATEWAY_NAMESPACE \
      -f DIR_PATH/samples/gateways/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

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.

La instalación no se completará hasta que habilites la inserción automática de proxy de sidecar y reinicies los Pods para las cargas de trabajo que se estaban ejecutando en tu clúster antes de instalar Anthos Service Mesh.

Para habilitar la inserción automática, debes etiquetar tus espacios de nombres con la etiqueta de revisión que se estableció en istiod cuando instalaste Anthos Service Mesh. El webhook de inyector de sidecar usa la etiqueta de revisión para asociar los sidecars insertados con una revisión istiod particular. Después de agregar la etiqueta, los Pods existentes al espacio de nombres deben reiniciarse para que se incorporen los archivos adicionales.

Antes de implementar cargas de trabajo nuevas en un espacio de nombres nuevo, asegúrate de configurar la inserción automática para que Anthos Service Mesh pueda supervisar y proteger el tráfico.

Para habilitarla, usa este comando:

  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-1233-2-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-1233-2,istio=istiod,pod-template-hash=5788d57586
    istiod-asm-1233-2-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-1233-2,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-1233-2.

  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. Esto significa que el espacio de nombres no tenía la etiqueta istio-injection, que debería aparecer en las nuevas instalaciones de Anthos Service Mesh o en implementaciones nuevas. Debido a que la inserción automática falla si un espacio de nombres tiene tanto la istio-injection como la etiqueta de revisión, todos los comandos kubectl label de la documentación de Anthos Service Mesh incluyen la acción de quitar la etiqueta istio-injection.

  3. Si las cargas de trabajo se estaban ejecutando en tu clúster antes de instalar Anthos 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. Sin embargo, en tu entorno de producción, es posible que tengas un proceso que implemente una implementación azul-verde para que puedas 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