Actualmente estoy tratando de entender cómo se ve el flujo de aplicación típico para una aplicación de kubernetes en combinación con Istio.
Entonces, para mi aplicación, tengo una aplicación asp.net alojada dentro de un clúster de Kubernetes y agregué Istio en la parte superior. Aquí está mi puerta de enlace y VirtualService:
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: appgateway spec: selector: istio: ingressgateway servers: - port: number: 80 name: http protocol: HTTP hosts: - "*" tls: httpsRedirect: true - port: number: 443 name: https protocol: HTTPS tls: mode: SIMPLE serverCertificate: /etc/istio/ingressgateway-certs/tls.crt privateKey: /etc/istio/ingressgateway-certs/tls.key hosts: - "*" --- apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: appvservice spec: hosts: - "*" gateways: - appgateway tls: - match: - port: 443 sniHosts: - "*" route: - destination: host: frontendservice.default.svc.cluster.local port: number: 443Esto es lo que se me ocurrió después de leer la documentación de Istio.
Tenga en cuenta que mi servicio frontendservice es un enrutamiento de servicio ClusterIP muy básico a una aplicación Asp.Net que también ofrece puertos estándar 80/443.
Tengo algunas preguntas ahora:
Me lo he imaginado funcionando así:
Gracias de antemano. Estoy aprendiendo Istio y estoy un poco desconcertado por qué mi configuración aparentemente adecuada no funciona aquí.
Su puerta de enlace termina las conexiones TLS, pero su VirtualService está configurado para aceptar conexiones TLS no terminadas con TLSRoute .
Compare el ejemplo sin terminación TLS y el ejemplo que termina TLS . Lo más probable es que la configuración "predeterminada" sea finalizar la conexión TLS y configurar VirtualService con HTTPRoute .
También estamos usando una configuración similar.