我有一个 microk8s v1.28.14 集群,我想使用 kubernetes-dashboard。
我通过启用了仪表板microk8s enable dashboard
,仪表板 pod 和服务在“kube-system”命名空间中创建,curl -k https://10.152.183.43
服务正常运行。
现在我希望能够从外部访问我的仪表板。使用 cloudflare 为我的域提供 HTTPS 重定向和灵活的 TLS 设置。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kubernetes-dashboard
namespace: kube-system
spec:
rules:
- host: cluster.my-domain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kubernetes-dashboard
port:
number: 443
入口本身看起来不错:
Name: kubernetes-dashboard
Labels: <none>
Namespace: kube-system
Address: 127.0.0.1
Ingress Class: public
Default backend: <default>
Rules:
Host Path Backends
---- ---- --------
cluster.my-domain.com
/ kubernetes-dashboard:443 (10.1.206.212:8443)
Annotations: <none>
Events: <none>
当现在尝试访问我的仪表板(“curl -k https://cluster.my-domain.com”)时,我收到以下错误:
Client sent an HTTP request to an HTTPS server
有什么办法可以解决这个问题吗?
最佳答案
1
根据这个问题
您遇到的错误是由于入口控制器和服务路由不匹配造成的。
默认情况下, 命令在端口 80 上公开仪表板服务。您需要将其配置为使用 HTTPS。
一旦仪表板服务在 HTTPS 上公开。确保 CloudFlare 设置处处都有 HTTPS。如果您请验证证书验证是否设置为完全(严格)
当您将加密模式设置为“完整(严格)”时,Cloudflare 会以“完整”模式执行所有操作,但也会对原始证书实施更严格的要求。
应用更改后,重新启动 pod 和服务以确保新的配置。
和 Kubernetes 的 类似 以获取更多信息。
1
-
请参阅此类似的错误以获取更多信息。
–
|
|