Compartir a través de


Solución de problemas del complemento mesh de istio service meshConfig

En este artículo se describe cómo solucionar problemas que se producen al usar MeshConfig para configurar el complemento de malla de servicio Istio para Microsoft Azure Kubernetes Service (AKS).

Configuración de ConfigMap compartida

El complemento Istio MeshConfig le permite configurar ciertas opciones de ancho de malla. Para ello, cree un configMap local en el aks-istio-system espacio de nombres . A continuación, el plano de control istio combina este configMap con el configMap predeterminado. (Si existe un conflicto entre la configuración, la configuración predeterminada tiene prioridad). Este enfoque se denomina configuración de ConfigMap compartida.

Cree un objeto ConfigMap denominado istio-shared-configmap-<asm-revision> en el aks-istio-system espacio de nombres . Por ejemplo, si usa la revisión asm-1-18, debe asignar un nombre a ConfigMap, istio-shared-configmap-asm-1-18. A continuación, proporcione la configuración de malla dentro del mesh campo de la data sección, como se muestra en el siguiente archivo YAML configMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: istio-shared-configmap-asm-1-18
  namespace: aks-istio-system
data:
  mesh: |-
    accessLogFile: /dev/stdout
    defaultConfig:
      holdApplicationUntilProxyStarts: true

Los valores dentro del defaultConfig campo son la configuración de todo la malla para el sidecar envoy.

Actualizaciones de valor controlado

Antes de iniciar una actualización de valor controlado, siga las instrucciones de configuración y actualización de malla para crear un segundo configMap compartido para la nueva revisión del plano de control en el aks-istio-system espacio de nombres.

Si no se creó un elemento ConfigMap antes de iniciar la actualización, no se podrá acceder a las características configuradas por el elemento ConfigMap compartido. Para solucionar este problema, cree el elemento ConfigMap que falta para la revisión correspondiente y copie los campos pertinentes de configMap compartido anterior.

Para más información, consulte Upgrade Istio-based service mesh add-on for Azure Kubernetes Service and Istio service mesh add-on minor revision upgrade troubleshooting.

Valores permitidos, admitidos y no permitidos

El complemento Istio designa los campos MeshConfig como permitidos y supported, permitidos, pero unsupported, y disallowed. Para obtener información sobre los campos MeshConfig permitidos y compatibles para el complemento y consulte una introducción a los distintos niveles de soporte técnico, consulte Configuración del complemento de malla de servicio basado en Istio para Azure Kubernetes Service. Si los campos que se mencionan en la documentación de Istio ascendente no aparecen en la lista de permitidos para el complemento, estos campos no se permiten.

Lista de comprobación de solución de problemas

Paso 1: Asegúrese de que está editando el configMap correcto

  • Asegúrese de que va a configurar configMap compartido (por ejemplo, istio-shared-configmap-asm-1-17) y no edite el configMap predeterminado (por ejemplo, istio-asm-1-17).
  • Asegúrese de que configMap compartido apunta a la revisión correcta en su título.

Paso 2: Quitar sangrías de pestañas de la definición MeshConfig en el configMap compartido

En la definición MeshConfig dentro del configMap compartido (en data.mesh), asegúrese de usar espacios en lugar de pestañas. Quite los caracteres de tabulación que encuentre.

Paso 3: Asegúrese de que los campos MeshConfig sean válidos

Si los campos no se reconocen o no se incluyen en la lista de permitidos MeshConfig, se rechazan las actualizaciones de MeshConfig. Compruebe si se permiten los campos MeshConfig deseados y asegúrese de que los campos están escritos correctamente.

Paso 4: Evitar la sobrecarga de CoreDNS

Los problemas relacionados con la sobrecarga de CoreDNS pueden requerir que cambie cierta configuración de DNS de Istio, como el dnsRefreshRate campo de la definición meshConfig de Istio.

Paso 5: Corregir problemas de consumo de memoria

Si experimenta un consumo elevado de memoria en Envoy, compruebe la configuración de Envoy para obtener la recopilación de datos de estadísticas. Si va a personalizar las métricas de Istio a través de MeshConfig, recuerde que ciertas métricas pueden tener una cardinalidad alta y, por lo tanto, provocar una mayor superficie de memoria.

Se recomienda usar el campo en la definición MeshConfig para reducir el discoverySelectors consumo de memoria para Istiod y Envoy. Para obtener más información, consulte Solución de problemas del complemento general de malla de servicio de Istio.

Paso 6: Núcleos de CPU gratuitos

Si todos los núcleos de CPU están en uso, el concurrency campo de la definición MeshConfig podría estar mal configurado. Si este campo se establece en cero, Envoy usa todos los núcleos de CPU. En esta situación, quite concurrency de la definición MeshConfig. Si el concurrency campo no está configurado, las solicitudes de CPU y los límites determinan el número de núcleos de CPU que se usan en su lugar.

Paso 7: Corregir las condiciones de carrera de pods y sidecar

Si el pod de la aplicación se inicia antes de que se inicie Envoy sidecar, es posible que la aplicación deje de responder o que se reinicie. Para obtener instrucciones sobre cómo evitar este problema, consulte Pod o contenedores comienzan con problemas de red si istio-proxy no está listo. En concreto, puede establecer el holdApplicationUntilProxyStarts campo MeshConfig en defaultConfig para true ayudar a evitar estas condiciones de carrera.

Referencias

Aviso de declinación de responsabilidades sobre la información de terceros

Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.

Aviso de declinación de responsabilidades sobre la información de contacto de terceros

Microsoft proporciona información de contacto de otros proveedores para ayudarle a encontrar información adicional sobre este tema. Esta información de contacto puede cambiar sin previo aviso. Microsoft no garantiza la precisión de esta información de contacto de terceros.

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.