我正在学习 Kubernetes,并希望在我的集群上部署 Kubernetes 仪表板。默认情况下,仪表板位于端口上30941
并需要 HTTPS 连接。然后可以通过我的集群 IP 访问。我想为此设置一个域,我正在为此使用下面的配置,利用--enable-ssl-passthrough
。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "0"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
name: dashboard-ingress
namespace: kubernetes-dashboard
spec:
ingressClassName: nginx
tls:
- hosts:
- dashboard.mydomain.nl
secretName: kubernetes-dashboard-certs
rules:
- host: dashboard.mydomain.nl
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kubernetes-dashboard
port:
number: 30941
这是可行的,但正如所述,速度真的很慢文档。
此功能通过拦截配置的 HTTPS 端口(默认值:443)上的所有流量并将其移交给本地 TCP 代理来实现。这会完全绕过 NGINX,并带来不可忽略的性能损失。
我知道在这种情况下您可以使用 HTTP 服务,但如果您别无选择怎么办?我无法想象 Kubernetes 没有针对此问题的原生解决方案。您通常如何做到这一点,或者是否有解决方法使其像正常方式一样快?