Cuando instalas Anthos Service Mesh, las características del plano de control que están habilitadas de forma predeterminada difieren según la plataforma. Puedes habilitar funciones opcionales si incluyes un archivo de superposición cuando instalas (o actualizas) Anthos Service Mesh. Un archivo de superposición es un archivo YAML que contiene una recurso personalizado (CR) IstioOperator
que usas para configurar el plano de control. Puedes anular la configuración predeterminada y habilitar una función opcional 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.
Acerca de los archivos de superposición
Los archivos de superposición de esta página se encuentran en el paquete anthos-service-mesh
en GitHub. Estos archivos contienen personalizaciones comunes de la configuración predeterminada. Puedes usar estos archivos tal como están o puedes realizar cambios adicionales según sea necesario.
Cuando instalas Anthos Service Mesh con el comando
istioctl install
, puedes especificar uno o más archivos de superposición con la opción de línea de comandos-f
. Aunque puedes modificar la configuración si especificas los parámetros de configuración en la línea de comandos mediante la opción--set
enistioctl install
, 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 recursos personalizados. Necesitas conservar estos archivos para actualizar Anthos Service Mesh a fin de que el plano de control tenga la misma configuración después de la actualizació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--option
o las opciones--custom_overlay
. Si no necesitas realizar cambios en los archivos del repositorioanthos-service-mesh
, puedes usar--option
y la secuencia de comandos recupera el archivo de GitHub. 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 comandosinstall_asm
. Para ver ejemplos del uso de ambas opciones, consulta los ejemplos deinstall_asm
.
No incluyas varios CR en un archivo YAML | Crea archivos YAML separados para cada CR |
---|---|
Descarga el paquete anthos-service-mesh
Para descargar el paquete anthos-service-mesh
, 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.
Instala
kpt
si aún no lo hiciste:gcloud components install kpt
Descarga el paquete que contiene los archivos:
kpt pkg get \ https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.8-asm asm
En los siguientes ejemplos, se supone que el paquete
asm
está en tu directorio de trabajo actual.
Ejemplos
Para habilitar una característica cuando instalas Anthos Service Mesh, el comando exacto difiere un poco según tu plataforma 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
. El nombre de la implementación istiod
se establecerá como istiod-asm-186-8
. Una etiqueta de revisión tiene el formato istio.io/rev=asm-186-8
. 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 instalas Anthos Service Mesh.
En esta guía, se incluyen los pasos para establecer la variable de entorno CTX_CLUSTER1
y configurar cluster.yaml
. Una de las opciones de configuración que estableces como cluster.yaml
es la revisión. El archivo egressgateways.yaml
contiene la configuración para habilitar una puerta de enlace de salida opcional.
Instala Anthos Service Mesh en GKE en VMware:
istioctl install --context="${CTX_CLUSTER1}" \ -f cluster.yaml \ -f asm/istio/options/egressgateways.yaml
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.
El orden de los archivos en la línea de comandos es importante. Asegúrate de especificar cluster.yaml
primero, que tiene la configuración requerida para las funciones predeterminadas y, luego, los archivos de superposición.
Habilita una puerta de enlace de salida en GKE en Google Cloud
Te recomendamos que uses la secuencia de comandos install_asm
para configurar uno o más clústeres en el mismo proyecto. La secuencia de comandos 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.8-asm
que instala Anthos Service Mesh 1.8.6.
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_all \
--option egressgateways
Este comando ejecuta la secuencia de comandos para una instalación nueva y habilita la CA de Mesh, que es la CA predeterminada para las instalaciones. La marca --enable_all
permite que la secuencia de comandos habilite las API de Google obligatorias, configure los permisos de Identity and Access Management, y realice las actualizaciones necesarias en tu clúster, que incluye habilitar Workload Identity de GKE.
La secuencia de comandos recupera el archivo egressgateways.yaml
de GitHub, que se usa para configurar el plano de control.
Habilita una puerta de enlace de salida en clústeres de GKE en diferentes proyectos
En la actualidad, la secuencia de comandos install_asm
no admite la instalación de Anthos Service Mesh en clústeres en diferentes proyectos.
La siguiente línea de comandos supone que seguiste todos los pasos de la instalación y migración de varios proyectos hasta el punto en el que instalas Anthos Service Mesh.
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-186-8
Los siguientes archivos se superponen en la configuración del archivo
istio-operator.yaml
:El archivo
multiproject.yaml
se usa para especificar las características predeterminadas de una malla de varios proyectos. Debes especificarla antes de 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.
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
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.
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
Ten en cuenta que, actualmente, la configuración del rastreador es parte de la configuración de arranque del proxy, por lo que el pod debe reiniciarse y volver a insertarse para aplicar la actualización del rastreador. Por ejemplo, puedes usar el siguiente comando para reiniciar los pods que pertenecen a una implementación:
kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME
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
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
Habilita la CNI en GKE en VMware
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.
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.