Kubernetes Nginx Ingress 可以连接到 https pods?

Kubernetes Nginx Ingress can connect to https pods?

我有三个 pods 里面有 HTTPS 服务器。我曾经通过 NodePort 服务访问它们。现在我部署了一个 Nginx Ingress,将它们全部放在一个 IP 中。我注意到 Nginx Ingress 无法连接到 pod 中的 HTTPS 服务器,但如果我将其更改为 HTTP,它会完美连接。

如何让 Ingress 连接到 pods 中的 HTTPS 服务器?

我已经尝试配置一个 tls secret,并将其添加到 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: 8080

没用。我仍然收到 503 服务暂时不可用

我已阅读有关 SSL 直通的信息,但我也无法使其正常工作。

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: 8080

还是一样的503

根据文档 here 您需要添加此注释

nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"

可以使用后端协议注释来指示 NGINX 应如何与后端服务通信。 (替换旧版本中的安全后端)有效值:HTTP、HTTPS、GRPC、GRPCS 和 AJP

默认情况下 NGINX 使用 HTTP