从另一台计算机访问时,kubectl代理未经授权

时间:2017-02-07 16:32:26

标签: proxy kubernetes kubectl

我的开发盒上的VM上运行了Kubernetes。我想从VM主机查看Kubernetes仪表板。当我运行以下命令时:

kubectl proxy --address 0.0.0.0 --accept-hosts ^/.*

当我尝试访问仪表板时,我收到了未经授权的错误。

我错过了什么?

2 个答案:

答案 0 :(得分:18)

--accept-hosts访问控制用于检查主机名,因此它不会以/(斜杠)开头。你需要这样做:

kubectl proxy --address 0.0.0.0 --accept-hosts '.*'

(确保shell转义。*,因为它可能匹配当前目录中的文件!)

有关详情,请访问:https://kubernetes.io/docs/user-guide/kubectl/kubectl_proxy/

答案 1 :(得分:0)

万一有人偶然发现了这个问题,并希望限制对来宾VM主机的访问。

我正在使用VirtualBox,并且只能使用localhost并使用到来宾VM的SSH隧道来允许从主机进行访问

在来宾VM中

$ kubectl proxy --address='0.0.0.0' --port=8002 --accept-hosts='localhost'

在主机中,我添加了一个主机名引用,该主机名引用到主平面kubemaster

$ echo "192.168.224.23 kubemaster" >> /etc/hosts
$ ssh -N -L 8001:localhost:8002 kube@kubemaster

在“主机”中,打开浏览器并导航到
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/namespace?namespace=default