【发布时间】:2021-02-15 05:03:44
【问题描述】:
我目前正在我的 k8s 集群中使用 NGINX 入口控制器。我试图使端到端加密工作,并且能够使连接一直安全到 pod。
为了实现 HTTPS 一直到 pod,我不得不使用注解
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
示例入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: foo-api-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
tls:
- hosts:
- foo.example.com
secretName: foo-cert
rules:
- host: foo.example.com
http:
paths:
- path: /path1
backend:
serviceName: foo-api-path1-service
servicePort: 443
- path: /path2
backend:
serviceName: foo-api-path2-service
servicePort: 443
我对这究竟是如何发生的感到困惑,因为当我们加密连接路径时也会加密,那么 NGINX 如何进行基于路径的路由?它会在入口处解密连接并重新加密吗?另外,使用这种方法会影响性能吗?
【问题讨论】:
标签: ssl nginx kubernetes kubernetes-ingress nginx-ingress