Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes仪表板显示未经授权_Kubernetes_Dashboard_Kubeadm - Fatal编程技术网

Kubernetes仪表板显示未经授权

Kubernetes仪表板显示未经授权,kubernetes,dashboard,kubeadm,Kubernetes,Dashboard,Kubeadm,我在本地使用KUBEADM工具为kubernetes集群配置了一个主节点和4个工作节点。所有节点都运行正常。部署了一个应用程序,并且可以从浏览器访问该应用程序。我尝试了很多方法来使用kubectl创建仪表板,但失败了 TRY1:直接使用以下命令进行尝试: $ sudo kubectl proxy --address="172.20.22.101" -p 8001 $ kubectl create -f dashboard-admin.yaml 试图使用url访问仪表板,但显示未经授权 TR

我在本地使用KUBEADM工具为kubernetes集群配置了一个主节点和4个工作节点。所有节点都运行正常。部署了一个应用程序,并且可以从浏览器访问该应用程序。我尝试了很多方法来使用kubectl创建仪表板,但失败了

TRY1:直接使用以下命令进行尝试:

$ sudo kubectl proxy --address="172.20.22.101" -p 8001 
$ kubectl create -f dashboard-admin.yaml
试图使用url访问仪表板,但显示未经授权

TRY2:创建了dashboard-admin.yaml文件,其中包含以下内容:

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
   name: kubernetes-dashboard
   labels:
     k8s-app: kubernetes-dashboard
roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: ClusterRole
   name: cluster-admin
subjects:
-  kind: ServiceAccount
   name: kubernetes-dashboard
   namespace: kube-system
并运行以下命令:

$ sudo kubectl proxy --address="172.20.22.101" -p 8001 
$ kubectl create -f dashboard-admin.yaml
它向我显示:
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-created.

运行以下命令:

$ sudo kubectl proxy --address="172.20.22.101" -p 443

它运转良好。我正在从浏览器访问URL。它显示了相同的未经授权的错误。

使用--accept hosts选项运行kubectl proxy命令

 kubectl proxy --address="172.20.22.101" -p 8001  --accept-hosts="^*$"
它会很好的工作

注意:这不建议用于生产级kubernetes群集,因为您是通过普通http访问仪表板的。

更安全的替代方法是通过ssh隧道运行仪表板访问,如下所示

在一次终端运行中:

kubectl proxy 
在另一个终端中,运行到localhost:8001(默认kubernetes仪表板端口)的ssh隧道


我已经编辑了我的答案,您必须允许流量从特定来源通过--accept hosts optioni从其他终端执行kubectl proxy和ssh到达kubernetes仪表板。当我做宋承宪。它没有显示任何内容。我被执行kubectl proxy--address=“172.20.22.101”-p 8001--accept hosts=“^*$”。并尝试访问URL:。它显示的是json响应,而不是仪表板。您能告诉我获取仪表板的url吗?如果是ssh隧道,命令将保持隧道打开,并且不会输出任何内容。要访问仪表板,请使用此url:如果使用--accept hosts选项,您可以使用此url访问仪表板:{“种类”:“状态”,“apiVersion”:“v1”,“元数据”:{},“状态”:“失败”,“消息”:“没有可用于服务的端点\”http:kubernetes仪表板:\”,“原因”:“服务不可用”,“代码”:503}我正在按照以下步骤在此中安装仪表板:。当我尝试使用url访问站点时:。它显示连接被拒绝。我在nohup.out中观察到输出,它显示以下错误:I1203 12:28:05.880828 15591 log。go:172]http:proxy错误:拨号tcp[::1]:8080:connect:connection-densed