我正在尝试使用 Nginx ingress 访问我本地电脑上的 kubernetes 仪表板。我遵循的步骤是:
获取 nginx 入口
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.48.1/deploy/static/provider/cloud/deploy.yaml
获取 kubernetes 仪表板
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml
应用这个入口
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dashboard-ingress
namespace: kubernetes-dashboard
spec:
rules:
- host: "kubernetes.docker.internal"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: kubernetes-dashboard
port:
number: 443
检查我的主机文件是否有这一行
127.0.0.1 kubernetes.docker.internal
如果我尝试打开 http://kubernetes.docker.internal/在我的浏览器上我收到“Http 错误 400 此页面无法正常工作”,而在 postman 上我收到错误 400 消息“客户端向 HTTPS 服务器发送了一个 HTTP 请求。”
我该如何解决?
最佳答案
我决定在入口 yaml 中添加注释部分。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dashboard-ingress
namespace: kubernetes-dashboard
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
rules:
- host: "kubernetes.docker.internal"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: kubernetes-dashboard
port:
number: 443
关于Docker 桌面上的 Kubernetes Ingress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68623707/