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.修改配置
下载后,需要修改配置。
我们需要更改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
复制代码
评论