Man*_*uiz 0 nginx kubernetes nginx-ingress
我有三个 pod,里面有 HTTPS 服务器。我曾经通过 NodePort 服务访问它们。现在我部署了一个 Nginx Ingress 将它们全部集中在一个 IP 中。我注意到 Nginx Ingress 无法与 pod 中的 HTTPS 服务器连接,但如果我将其更改为 HTTP,则可以完美连接。
如何让 Ingress 与 Pod 中的 HTTPS 服务器连接?
我尝试配置一个 tls 秘密,并将其添加到 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
Run Code Online (Sandbox Code Playgroud)
它不起作用。我仍然遇到 503 服务暂时不可用
我已经阅读过有关 SSL Passthrough 的内容,但我也无法使其工作。
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
Run Code Online (Sandbox Code Playgroud)
还是一样的503。
从此处的文档中,您需要添加此注释
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
Run Code Online (Sandbox Code Playgroud)
使用后端协议注释可以指示 NGINX 应如何与后端服务通信。(替换旧版本中的安全后端)有效值:HTTP、HTTPS、GRPC、GRPCS 和 AJP
默认情况下 NGINX 使用 HTTP
| 归档时间: |
|
| 查看次数: |
1047 次 |
| 最近记录: |