Cuando instalas Anthos Service Mesh, especificas un perfil de configuración. Los perfiles de configuración son archivos YAML que definen y configuran las funciones que se instalan con Anthos Service Mesh. 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:Telemetría de malla, que proporciona datos a los paneles de Anthos Service Mesh en la consola de Google Cloud.
Las otras funciones predeterminadas compatibles que se enumeran en la página Funciones compatibles para el perfil de configuración
asm-gcp
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 perfilasm-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 de otros entornos compatibles: GKE on VMware, GKE on AWS, Amazon Elastic Kubernetes Service (Amazon EKS) y Microsoft Azure Kubernetes Service (Microsoft AKS). Cuando instalas Anthos Service Mesh con el perfilasm-multicloud.yaml
, se habilitan las funciones predeterminadas compatibles que se enumeran en la página Funciones compatibles para el perfil de configuraciónasm-multicloud
.
Los perfiles se encuentran en el subdirectorio manifests/profiles
dentro del directorio raíz de la instalación de Anthos Service Mesh.
Puedes anular el perfil de configuración y habilitar las características opcionales compatibles mediante la API de IstioOperator
. Especifica la configuración de IstioOperator
en un archivo YAML, por ejemplo, feature.yaml
. (No importa el nombre del archivo YAML).
Aunque puedes modificar la configuración si realizas cambios en el perfil o si especificas parámetros de configuración en la línea de comandos mediante la opción --set
, te recomendamos usar un archivo YAML de configuración IstioOperator
para que puedas almacenar el archivo en tu sistema de control de versión junto con los otros archivos de configuración de recursos. Puedes especificar varios archivos en la línea de comandos cuando habilitas las características opcionales.
Ejemplos
Para habilitar una característica cuando instalas o actualizas Anthos Service Mesh, debes incluir el perfil y el archivo YAML para la función que deseas habilitar. En estos ejemplos, se supone que completaste todos los pasos de la guía de instalación o actualización que estás siguiendo hasta el momento en el que se instaló Anthos Service Mesh.
Habilita una puerta de enlace de salida
En este ejemplo, se muestra cómo habilitar una puerta de enlace de salida en GKE en VMware.
Copia el siguiente YAML en
feature.yaml
y guarda el archivo:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: egressGateways: - name: istio-egressgateway enabled: true
Para instalar Anthos Service Mesh en GKE en VMware, en la siguiente línea de comandos, reemplaza
REVISION
por la versión exacta de Anthos Service Mesh que estás instalando, comoasm-1614-2
.istioctl install \ --set profile=asm-multicloud \ --set revision=REVISION \ -f feature.yaml
Habilita el seguimiento
En este ejemplo, se muestra cómo habilitar Cloud Trace en GKE.
Para las instalaciones y actualizaciones en GKE, debes preparar istio-operator.yaml
, que contiene información sobre tu proyecto y tu clúster. Cuando configuras istio-operator.yaml
, configuras el perfil que deseas usar, ya sea asm-gcp
o asm-gcp-multiproject
. Debido a que el perfil está configurado en istio-operator.yaml
, no debes especificar el perfil en la línea de comandos en este caso, aunque es posible que quieras especificarlo para mayor claridad.
Copia el siguiente YAML en
feature.yaml
y guarda el archivo:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: enableTracing: true values: global: proxy: tracer: stackdriver
Para instalar Anthos Service Mesh en GKE, ejecuta la siguiente línea de comandos:
- Reemplaza
PROFILE
con el perfil que usas, ya seaasm-gcp
oasm-gcp-multiproject
. - Reemplaza
REVISION
por la versión exacta de Anthos Service Mesh que deseas instalar, como:asm-1614-2
istioctl install \ -f asm/cluster/istio-operator.yaml \ --set profile=PROFILE \ --set revision=REVISION \ -f feature.yaml
- Reemplaza
YAML para características opcionales
En las siguientes secciones, se proporciona el archivo YAML para habilitar características opcionales y compatibles. Cuando habilitas una característica opcional, debes incluir el perfil y el archivo YAML para la función que deseas habilitar en la línea de comandos. Para GKE, el perfil está configurado en istio-operator.yaml
.
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 traceSampling
. 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 values: pilot: traceSampling: 100 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.
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
Para GKE en VMware, agrega gke-system
a excludeNamespaces
y values.cni.cniBinDir
.
Es /opt/cni/bin
:
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. En el siguiente YAML, reemplaza PROFILE
por el perfil que estás usando, ya sea asm-gcp
o asm-gcp-multiproject
.
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: profile: PROFILE 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 - name: https port: 443
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.