我在我的开发盒上的虚拟机上运行 Kubernetes。我想从 VM 主机查看 Kubernetes 仪表板。当我运行以下命令时:
kubectl proxy --address 0.0.0.0 --accept-hosts ^/.*
当我尝试访问仪表板时,我收到未经授权的错误。
我错过了什么?
我在我的开发盒上的虚拟机上运行 Kubernetes。我想从 VM 主机查看 Kubernetes 仪表板。当我运行以下命令时:
kubectl proxy --address 0.0.0.0 --accept-hosts ^/.*
当我尝试访问仪表板时,我收到未经授权的错误。
我错过了什么?
--accept-hosts 访问控制用于检查主机名,因此它不会以 /(斜杠)开头。你需要做:
kubectl proxy --address 0.0.0.0 --accept-hosts '.*'
(确保您对 .* 进行 shell 转义,因为它可能与当前目录中的文件匹配!)
更多信息请访问:https ://kubernetes.io/docs/user-guide/kubectl/kubectl_proxy/
万一有人偶然发现这个问题并想要限制对来宾 VM 的主机的访问。
localhost
我正在使用 VirtualBox,并且通过使用和使用 SSH 隧道到来宾 VM ,我只能允许从主机访问
在来宾虚拟机中
$ kubectl proxy --address='0.0.0.0' --port=8002 --accept-hosts='localhost'
在主机中,我添加了对主机静态 IP 的主机名引用kubemaster
$ echo "192.168.224.23 kubemaster" >> /etc/hosts
$ ssh -N -L 8001:localhost:8002 kube@kubemaster
在 Host 中,打开浏览器并导航到
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/namespace?namespace=default