1.为什么使用可视化界面
当安装完node后,需要使用kubectl执行与操作,但是一直使用命令行对于新入手的我们来说可能比较繁琐。所以能否有一种可视化页面,直接在页面上指指点点,就能完成命令的工作呢。
官方提供了Dashboard插件作为可视化工具。强烈建议使用。
建议在日常操作时,bashboard与kubectl一起使用更佳。
2.安装
1.下载文件
选择文件夹,下载recommended.yaml到文件夹中。
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml 复制代码
2.修改配置
下载后,需要修改配置。
vi recommended.yaml 复制代码
我们需要更改type为NodePort
,指定其外网可以访问,否则其他电脑会访问不到,请注意!
3.安装
将 Dashboard添加至k8s
kubectl apply -f recommended.yaml 复制代码
4.验证
kubectl -n kubernetes-dashboard get all -l k8s-app=kubernetes-dashboard 复制代码
通过下图可能看到对外映射的端口为32241,每个人可能都不相同,请自行替换。
也可以看到启动后的端口 可以使用以下命令测试访问。
kubectl -n kubernetes-dashboard port-forward pod/kubernetes-dashboard-5c785c8bcf-z94nt 32241 //访问 复制代码
pod/kubernetes-dashboard-5c785c8bcf-z94nt与端口都是上文图中获取,每个人的配置都不相同,请自行修改。
如果出现安装错误,可以执行以下命令查看报错信息。
sudo kubectl logs kubernetes-dashboard-6dccb458d5-x7xft --namespace=kubernetes-dashboard 复制代码
5.创建用户
k8s使用rbac权限,所以必须使用特殊的用户才能够访问。在登录时,要求使用token,所以需要获取到新建用户的token。
#创建dashboard-admin账户 kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard #将dashboard-admin用户授cluster-admin权限(clusterrole为集群管理权限) kubectl create clusterrolebinding dashboard-admin-rb --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin #获取账号token kubectl get secrets -n kubernetes-dashboard |grep dashboard-admin 通过账号获取token(此处dashboard-admin-token-xxxx为上文获取) kubectl describe secrets dashboard-admin-token-xxxx -n kubernetes-dashboard 复制代码
在执行命令时,生成的部分id不同,请自行对应替换。
创建用户获取token后登录后,看不到具体信息,或者报错(
statefulsets.apps is forbidden: User "system:serviceaccount:kubernetes-dashb.......
),肯定是用户问题。请重新执行以上命令。
6.访问
访问 ip:32241
上文获取到的端口号,请根据上文获取自行修改。
登录时,选择token,并把上文获取到token复制并输入。
3.卸载
如果安装的的dashboard错误,可以卸载重新安装。
kubectl get secret,sa,role,rolebinding,services,deployments --namespace=kubernetes-dashboard | grep dashboard kubectl delete deployment kubernetes-dashboard --namespace=kubernetes-dashboard kubectl delete service kubernetes-dashboard --namespace=kubernetes-dashboard kubectl delete role kubernetes-dashboard-minimal --namespace=kubernetes-dashboard kubectl delete rolebinding kubernetes-dashboard-minimal --namespace=kubernetes-dashboard kubectl delete sa kubernetes-dashboard --namespace=kubernetes-dashboard kubectl delete secret kubernetes-dashboard-certs --namespace=kubernetes-dashboard kubectl delete secret kubernetes-dashboard-key-holder --namespace=kubernetes-dashboard 复制代码