Solución de problemas de puerta de enlace de entrada de complemento de Istio Service Mesh
En este artículo se describe cómo solucionar problemas de puerta de enlace de entrada en el complemento de malla de servicio Istio para Azure Kubernetes Service (AKS). La puerta de enlace de entrada de Istio es un proxy inverso basado en Envoy que puede usar para enrutar el tráfico entrante a las cargas de trabajo de la malla.
Para el complemento de malla de servicio basado en Istio, ofrecemos las siguientes opciones de puerta de enlace de entrada:
Puerta de enlace de entrada interna que usa una dirección IP privada.
Puerta de enlace de entrada externa que usa una dirección IP accesible públicamente.
Nota
Microsoft no admite la personalización de la dirección IP para las puertas de enlace de entrada internas o externas. Cualquier cambio de personalización de IP en el complemento de malla de servicio de Istio se revertirá.
El complemento implementa pods e implementaciones de puerta de enlace de entrada de Istio por revisión. Si va a realizar una actualización controlada y tiene dos revisiones del plano de control instaladas en el clúster, es posible que tenga que solucionar varios pods de puerta de enlace de entrada en ambas revisiones.
Lista de comprobación de solución de problemas
Paso 1: Asegúrese de que no haya ninguna regla de firewall o grupo de seguridad de red bloquee la puerta de enlace de entrada.
Compruebe que no tiene reglas de firewall o grupo de seguridad de red (NSG) que bloquean el tráfico a la puerta de enlace de entrada. Debe agregar explícitamente una regla de traducción de direcciones de red de destino (DNAT) para permitir el tráfico entrante a través de Azure Firewall a la puerta de enlace de entrada.
Paso 2: Configurar las puertas de enlace, los servicios virtuales y las reglas de destino correctamente
Al configurar puertas de enlace, servicios virtuales y reglas de destino para el enrutamiento de tráfico a través de la puerta de enlace de entrada, siga estos pasos:
Asegúrese de que el selector de puerta de enlace de entrada del recurso de puerta de enlace esté establecido en uno de los siguientes valores de texto si usa una puerta de enlace interna o externa, respectivamente:
istio: aks-istio-ingressgateway-external
istio: aks-istio-ingressgateway-internal
Asegúrese de que los puertos se establecen correctamente en puertas de enlace y servicios virtuales. Para la puerta de enlace, el puerto debe establecerse
80
en parahttp
o443
parahttps
. Para el servicio virtual, el puerto debe establecerse en el puerto en el que escucha el servicio correspondiente para la aplicación.Compruebe que el servicio se expone dentro de la
hosts
especificación para la puerta de enlace y el servicio virtual. Si experimenta problemas relacionados con elHost
encabezado en las solicitudes, intente agregar a la lista de permitidos todos los hosts que contienen un carácter comodín asterisco ("*"), como en esta configuración de puerta de enlace de ejemplo. Sin embargo, se recomienda no modificar la lista de permitidos como práctica de producción. Además, lahosts
especificación debe configurarse explícitamente.
Paso 3: Corrección del estado del pod de puerta de enlace de entrada
Si el pod de puerta de enlace de entrada se bloquea o no aparece en el estado listo, compruebe que el pod del plano de control de Istioistiod
está en estado listo. La puerta de enlace de entrada depende de que la istiod
versión esté lista.
Si el istiod
pod no aparece en el estado listo, asegúrese de que las definiciones de recursos personalizados (CRD) de Istio y el base
gráfico de Helm está instalado correctamente. Para ello, ejecute el siguiente comando:
helm ls --all --all-namespaces
Es posible que vea un error más amplio en el que la instalación del complemento no está configurada específicamente para la puerta de enlace de entrada.
Si el istiod
pod es correcto, pero los pods de puerta de enlace de entrada no responden, inspeccione los siguientes recursos de puerta de enlace de entrada en el aks-istio-ingress
espacio de nombres para recopilar más información:
- Versión de Helm
- Implementación
- Service
Además, puede encontrar más información sobre la depuración de puerta de enlace y sidecar en solución de problemas del complemento general de malla de servicio istio.
Paso 4: Configuración del uso de recursos
El uso elevado de los recursos se produce cuando la configuración predeterminada de réplica mínima/máxima para Istiod y las puertas de enlace no son suficientes. En este caso, cambie las configuraciones de escalado automático horizontal de pods.
Paso 5: Solución de problemas de la puerta de enlace de entrada segura
Cuando se configura una puerta de enlace de entrada externa para exponer un servicio HTTPS seguro mediante TLS simple o mutua, siga estos pasos de solución de problemas:
Compruebe que los valores de las
INGRESS_HOST_EXTERNAL
variables de entorno ySECURE_INGRESS_PORT_EXTERNAL
son válidos en función de la salida del comando siguiente:kubectl -n aks-istio-ingress get service aks-istio-ingressgateway-external
Compruebe si hay mensajes de error en los registros del controlador de puerta de enlace:
kubectl logs -n aks-istio-ingress <gateway-service-pod>
Compruebe que los secretos se crean en el
aks-istio-ingress
espacio de nombres:kubectl -n aks-istio-ingress get secrets
En el ejemplo de Puerta de enlace de entrada segura para el complemento de malla de servicio Istio para Azure Kubernetes Service, se debe enumerar el productpage-credential
secreto.
Después de habilitar el complemento del proveedor de secretos de Azure Key Vault, debe conceder acceso a la identidad administrada asignada por el usuario del complemento a Azure Key Vault. La configuración incorrecta del acceso a Azure Key Vault impedirá que se cree el productpage-credential
secreto.
Después de crear el SecretProviderClass
recurso, para asegurarse de que los secretos se sincronicen desde Azure Key Vault al clúster, asegúrese de que el pod secrets-store-sync-productpage
de ejemplo que hace referencia a este recurso se implementa correctamente.
Referencias
Conceptos de administración del tráfico para puertas de enlace
Procedimientos recomendados de seguridad de Istio para puertas de enlace
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.
Declinación de responsabilidades de contacto de terceros
Microsoft proporciona la información de contacto de terceros 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 la 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.