dashboard的安装很是简单。但按照官网建议的方式安装完成后,输入token登陆时会没有反应。
这个问题困扰了我一成天,最终在这里找到了答案。
缘由以下:
按官方文档建议的方式安装完dashboard后,使用kubectl proxy
代理的方式来访问webUI。使用这个代理的方式访问就会致使登陆无响应的问题。
咱们须要将dashboard的service类型改成NodePort,将端口映射到虚拟机上,而后直接经过虚拟机的ip地址登陆node
wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kube-system spec: # 添加Service的type为NodePort type: NodePort ports: - port: 443 targetPort: 8443 # 添加映射到虚拟机的端口,k8s只支持30000以上的端口 nodePort: 30001 selector: k8s-app: kubernetes-dashboard
kubectl create -f kubernetes-dashboard.yaml
这里有一个简单的命令:git
kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token
也能够本身手动查询:github
# 输入下面命令查询kube-system命名空间下的全部secret kubectl get secret -n kube-system # 而后获取token。只要是type为service-account-token的secret的token均可以使用。 # 好比咱们获取replicaset-controller-token-wsv4v的touken kubectl -n kube-system describe replicaset-controller-token-wsv4v
经过node节点的ip,加刚刚咱们设置的nodePort就能够访问了。web
https://<node-ip>:<node-port>
认证有两种方式:api
经过Kubeconfig文件认证
只须要在kubeadm生成的admin.conf文件末尾加上刚刚获取的token就行了。app
- name: kubernetes-admin user: client-certificate-data: xxxxxxxx client-key-data: xxxxxx token: "在这里加上token"