我使用KUBEADM工具IN LOCAL为kubernetes集群配置了一个主节点和4个工作节点 . 所有节点都运行正常 . 部署了一个应用程序,并能够从浏览器访问该应用我尝试了很多方法来使用kubectl创建仪表板,但我失败了 .
TRY1: 直接尝试使用以下命令:
$ sudo kubectl proxy --address="172.20.22.101" -p 8001
尝试使用网址http://172.20.22.101:8001/api/v1访问仪表板,但它是在说未经授权 .
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
并运行以下命令:
$ kubectl create -f dashboard-admin.yaml
它告诉我: clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created.
运行以下命令:
$ sudo kubectl proxy --address="172.20.22.101" -p 443
它运行良好 . 我正在从浏览器访问http://172.20.22.101:443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/ URL . 它显示出同样的未经授权的错误 .
1 回答
使用 --accept-hosts 选项运行kubectl proxy命令
它会工作正常 .
Note: this is not recommended for production grade kubernetes clusters, since you're accessing the dashboard through plain http.
更安全的替代方案是通过像这样的ssh隧道访问仪表板 .
在一个终端运行中:
在另一个终端运行ssh隧道到localhost:8001(默认kubernetes仪表板端口)