Tengo tres pods con servidores HTTPS adentro. Solía acceder a ellos a través de los servicios de NodePort. Ahora implementé un Nginx Ingress para tenerlos todos en una IP. He notado que Nginx Ingress no puede conectarse con un servidor HTTPS en un pod, pero se conecta perfectamente si lo cambio a HTTP.
¿Cómo puedo hacer que Ingress se conecte con servidores HTTPS en pods?
He intentado configurar un secreto tls y agregarlo a Ingress:
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: k8s-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/proxy-ssl-secret: cert spec: rules: - http: paths: - path: /api-rest backend: serviceName: api-rest servicePort: 8080 - path: /auth backend: serviceName: auth-entry servicePort: 8080No funcionó. Todavía tengo un servicio 503 temporalmente no disponible
He leído sobre SSL Passthrough pero tampoco puedo hacerlo funcionar.
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: k8s-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/ssl-passthrough: "true" spec: rules: - http: paths: - path: /api-rest backend: serviceName: api-rest servicePort: 8080 - path: /auth backend: serviceName: auth-entry servicePort: 8080Sigue siendo el mismo 503.
Desde los documentos aquí , debe agregar esta anotación
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"Es posible usar anotaciones de protocolo de back-end para indicar cómo NGINX debe comunicarse con el servicio de back-end. (Reemplaza backends seguros en versiones anteriores) Valores válidos: HTTP, HTTPS, GRPC, GRPCS y AJP
Por defecto, NGINX usa HTTP