Habilita funciones opcionales

Cuando instalas Anthos Service Mesh, según cuál sea tu entorno, debes especificar un perfil de configuración o un archivo de superposición que establezca el perfil por ti. Los perfiles de configuración son archivos YAML que usan la API de IstioOperator. Los perfiles definen y configuran las características que se instalan con Anthos Service Mesh. Los perfiles de la malla de servicios de Anthos son superposiciones del perfil empty (que no indica ninguna configuración) o del perfil default de Istio. En Anthos Service Mesh, se proporcionan los siguientes perfiles:

  • asm-gcp: Usa este perfil si todos tus clústeres de GKE están en el mismo proyecto. Cuando instales Anthos Service Mesh con este perfil, se habilitarán las siguientes funciones:

  • asm-gcp-multiproject: Usa este perfil si tu clúster de GKE se encuentra en una nube privada virtual compartida, y deseas agregar clústeres de diferentes proyectos a Anthos Service Mesh. Cuando instalas Anthos Service Mesh con el perfil asm-gcp-multiproject, sucede lo siguiente:

    • Por el momento, los paneles de Anthos Service Mesh en la consola de Google Cloud no están disponibles. Sin embargo, aún puedes ver registros en Cloud Logging y métricas en Cloud Monitoring para cada proyecto.

    • Las funciones predeterminadas compatibles que se enumeran en la página Funciones compatibles para el perfil de configuración asm-gcp-multiproject están habilitadas.

  • asm-multicloud: Usa este perfil para clústeres en otros entornos compatibles: GKE en VMware, GKE en AWS, Amazon Elastic Kubernetes Service (Amazon EKS) y Microsoft Azure Kubernetes Service (Microsoft AKS). Cuando instalas Anthos Service Mesh con el perfil asm-multicloud.yaml, se habilitan las funciones predeterminadas compatibles que se enumeran en la página Funciones compatibles para el perfil de configuración asm-multicloud.

Los perfiles se encuentran en el subdirectorio manifests/profiles dentro del directorio raíz de la instalación de Anthos Service Mesh.

Archivos de superposición

Un archivo de superposición es un archivo YAML que contiene una recurso personalizado (CR) IstioOperator que utilizas para configurar el plano de control. Puedes anular la configuración predeterminada y habilitar las funciones compatibles opcionales en un archivo de superposición. Puedes agregar capas a más superposiciones, y cada archivo superpuesto anula la configuración de las capas anteriores.

Cuando instalas o actualizas Anthos Service Mesh con el comando istioctl install, puedes especificar uno o más archivos de superposición en la línea de comandos con la opción -f.

No incluyas varios CR en un archivo YAML Crea archivos YAML separados para cada CR
varios CR en un yaml archivos yaml separados para cada CR

Aunque puedes modificar la configuración si especificas parámetros de configuración en la línea de comandos mediante la opción istioctl install en --set, te recomendamos que uses un archivo de superposición para que puedas almacenar el archivo en tu sistema de control de versión junto con tus otros archivos de definición de recursos. Necesitas conservar estos archivos cuando actualices Anthos Service Mesh para que tu malla de servicios tenga la misma configuración después de la actualización.

Los archivos de superposición de esta página se encuentran en el paquete asm en GitHub. Estos archivos contienen personalizaciones comunes de los perfiles. Puedes usar estos archivos tal como están o puedes realizar cambios adicionales según sea necesario. También puedes crear tus propios archivos de superposición, como se describe en Personaliza la configuración.

Cuando instalas Anthos Service Mesh con la secuencia de comandos install_asm que proporciona Google, puedes especificar uno o más archivos de superposición con la opción --option o --custom_overlay. Si no necesitas realizar ningún cambio en los archivos, puedes usar --option para que la secuencia de comandos recupere el archivo de GitHub por ti. De lo contrario, puedes realizar cambios en el archivo de superposición y, luego, usar la opción --custom_overlay para pasarlo a la secuencia de comandos install_asm. Para ver ejemplos del uso de ambas opciones, consulta los ejemplos de install_asm.

Para descargar el paquete asm, sigue estos pasos:

En los siguientes pasos, se usa kpt para descargar el paquete asm desde el repositorio de GitHub. Si lo prefieres, puedes usar git clone en su lugar.

  1. Instala kpt si aún no lo hiciste:

    gcloud components install kpt
    
  2. Descarga el paquete que contiene los archivos:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.7-asm asm
    

Ejemplos

Para habilitar una característica cuando instalas o actualizas Anthos Service Mesh, debes incluir el perfil o el archivo de superposición en el que se establecen el perfil y el archivo de la característica que deseas habilitar. El comando exacto difiere ligeramente según tu entorno y si usas la secuencia de comandos install_asm o el comando istioctl install.

Los siguientes comandos establecen una etiqueta de revisión en istiod. Las etiquetas de revisión tienen el formato istio.io/rev=asm-178-10. El webhook automático de inyector de sidecar usa la etiqueta de revisión para asociar los sidecars insertados con una revisión istiod particular. Para habilitar la inserción automática del sidecar en un espacio de nombres, debes etiquetarlo con una revisión que coincida con la etiqueta de revisión de istiod.

Habilita una puerta de enlace de salida en GKE On-Prem

En este ejemplo, se supone que seguiste los pasos de la guía Instala Anthos Service Mesh de forma local hasta el punto en el que lo instalas y el paquete asm se encuentra en el directorio de trabajo actual. El archivo egressgateways.yaml contiene la configuración para habilitar una puerta de enlace de salida.

  1. Instala Anthos Service Mesh en GKE en VMware:

    istioctl install \
      --set profile=asm-multicloud \
      -f asm/istio/options/egressgateways.yaml \
      --set revision=asm-178-10
    
  2. Asegúrate de volver a la guía de instalación de GKE en VMware a fin de configurar el webhook de validación, que es necesario para las instalaciones nuevas.

Habilita una puerta de enlace de salida en GKE en Google Cloud

Te recomendamos que uses la secuencia de comandos install_asm para configurar clústeres independientes o varios clústeres en el mismo proyecto. La secuencia de comandos usa el perfil asm-gcp y establece una etiqueta de revisión en istiod. En este ejemplo, se supone que seguiste la guía Instala Anthos Service Mesh en GKE para descargar la versión de la secuencia de comandos install_asm de la rama release-1.7-asm que instala Anthos Service Mesh 1.7.8.

Para usar la secuencia de comandos install_asm a fin de instalar una puerta de enlace de salida, haz lo siguiente:

./install_asm \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --mode install \
  --enable_apis \
  --option egressgateways

Este comando ejecuta la secuencia de comandos para una instalación nueva, establece el perfil asm-gcp, configura tu clúster con las opciones que requiere Anthos Service Mesh, habilita la CA de la malla (la autoridad certificada predeterminada para las nuevas instalaciones), permite que la secuencia de comandos habilite las API de Google requeridas y recupera el egressgateways.yaml de GitHub.

Habilita una puerta de enlace de salida en clústeres de GKE en diferentes proyectos

Actualmente, la secuencia de comandos install_asm no admite la instalación de Anthos Service Mesh con el perfil asm-gcp-multiproject, que es el perfil requerido cuando deseas configurar varios clústeres en diferentes proyectos para Anthos Service Mesh.

En la siguiente línea de comandos, se supone que seguiste todos los pasos de la guía de instalación y migración de varios proyectos, hasta el momento en el que se instala Anthos Service Mesh y que el paquete asm está en tu directorio de trabajo actual.

  1. Instala Anthos Service Mesh:

    istioctl install \
     -f asm/istio/istio-operator.yaml \
     -f asm/istio/options/multiproject.yaml \
     -f asm/istio/options/multicluster.yaml\
     -f asm/istio/options/egressgateways.yaml \
     --set revision=asm-178-10
    

    Los siguientes archivos se superponen en la configuración del archivo istio-operator.yaml:

    • El archivo multiproject.yaml establece el perfil asm-gcp-multiproject. Debido a que este archivo establece el perfil, debes especificarlo antes que los otros archivos de superposición.

    • El archivo multicluster.yaml configura los ajustes que necesita Anthos Service Mesh para una configuración de varios clústeres.

    • El archivo egressgateways.yaml configura la puerta de enlace de salida.

  2. Asegúrate de regresar a la Guía de instalación de varios proyectos a fin de configurar el webhook de validación, que se requiere para las instalaciones nuevas.

YAML para características opcionales

En las siguientes secciones, se proporciona el archivo YAML para habilitar características opcionales y compatibles.

Modo STRICT de mTLS

Se quitó la configuración global.mtls.enabled para evitar problemas con las actualizaciones y proporcionar una instalación más flexible. Para habilitar mTLS STRICT, configura una política de autenticación de pares.

Dirige Envoy a stdout

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    accessLogFile: "/dev/stdout"

Para obtener más información, consulta Habilita el registro de acceso de Envoy.

Cloud Trace

Para las instalaciones en GKE, puedes habilitar Cloud Trace. Para obtener información detallada sobre los precios, consulta la página de precios de Cloud Trace.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
  values:
    global:
      proxy:
        tracer: stackdriver

La tasa de muestreo predeterminada es del 1%, pero puedes anular el valor predeterminado si especificas un valor tracing.sampling. El valor debe estar en el rango de 0.0 a 100.0 con una precisión de 0.01. Por ejemplo, para hacer un seguimiento de 5 solicitudes de cada 10,000, usa 0.05.

En el siguiente ejemplo, se muestra una tasa de muestreo del 100% (que solo usarías con fines de demostración o solución de problemas).

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
    defaultConfig:
      tracing:
        sampling: 100
  values:
    global:
      proxy:
        tracer: stackdriver

Propagación del contexto de seguimiento

Aunque los proxies de sidecar pueden enviar de forma automática intervalos de seguimiento, necesitan algunas sugerencias para unir todo el seguimiento. Las aplicaciones deben propagar los encabezados HTTP adecuados para que cuando los proxies envíen información de intervalo, los intervalos puedan correlacionarse de forma correcta en un solo seguimiento.

Para ello, una aplicación debe recopilar y propagar los siguientes encabezados de la solicitud entrante en cualquier solicitud saliente:

  • x-request-id
  • x-b3-traceid
  • x-b3-spanid
  • x-b3-parentspanid
  • x-b3-sampled
  • x-b3-flags
  • x-ot-span-context
  • x-cloud-trace-context
  • traceparent
  • grpc-trace-bin

Para ver ejemplos que propagan los encabezados, consulta Propagación del contexto de seguimiento.

Crea un seguimiento desde un cliente con un ID personalizado

Si deseas crear un seguimiento a partir de un cliente con un ID personalizado, usa el comando curl para crear una solicitud con un cliente externo y forzarlo a mostrar un seguimiento. Por ejemplo:

curl $URL --header "x-client-trace-id: 105445aa7843bc8bf206b12000100000"

Para obtener más información sobre x-client-trace-id, consulta la documentación de Envoy.

Salida mediante puertas de enlace de salida

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    egressGateways:
    - name: istio-egressgateway
      enabled: true

Para obtener más información, consulta Puertas de enlace de salida.

Interfaz de red de contenedor de Istio

La forma de habilitar la interfaz de red de contenedor (CNI) de Istio depende del entorno en el que esté instalado Anthos Service Mesh. También debes habilitar una política de red.

Habilita CNI en GKE

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    cni:
      enabled: true
      namespace: kube-system
  values:
    cni:
      cniBinDir: /home/kubernetes/bin
      excludeNamespaces:
      - istio-system
      - kube-system

Habilita la CNI en GKE en VMware

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    cni:
      enabled: true
      namespace: kube-system
  values:
    cni:
      cniBinDir: /opt/cni/bin
      excludeNamespaces:
      - istio-system
      - kube-system
      - gke-system

Habilita un balanceador de cargas interno

Para las instalaciones en GKE, puedes habilitar un balanceador de cargas interno para la puerta de enlace de entrada de Istio.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    ingressGateways:
    - name: istio-ingressgateway
      enabled: true
      k8s:
        serviceAnnotations:
          cloud.google.com/load-balancer-type: "internal"
        service:
          ports:
          - name: status-port
            port: 15020
          - name: http2
            port: 80
            targetPort: 8080
          - name: https
            port: 443
            targetPort: 8443

Administración de certificados externos en la puerta de enlace de entrada

Para obtener información sobre cómo habilitar la administración de certificados externos en la puerta de enlace de entrada mediante SDS de Envoy, consulta Protege las puertas de enlace.