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
我有三个 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