k8s集群管理面板dashboard部署
在上一篇文章中,已经完成了K8s集群的搭建,现在再加上一个可视化的webUI来进行管理和方便查看。
这里选择kubernetes/dashboard 通过官方的配置可以一键部署。
安装
访问下载页面: https://github.com/kubernetes/dashboard/releases
选择自己K8s集群的兼容版本,进行安装
执行安装命令
1 | kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml |
查看启动状态
1 | kubectl get pods -n=kubernetes-dashboard -o wide |
都为Running状态就可以了
1 | NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES |
官方说明上的API访问方式 需要本地配置config,并开启kubectl proxy
,比较麻烦
我们可以直接修改kubernetes-dashboard service的Type属性
将里面的type: ClusterIP改为type: NodePort
1 | kubectl edit service kubernetes-dashboard -n=kubernetes-dashboard |
:wq
保存退出即可
等待更新完成之后,查看端口
1 | kubectl get service kubernetes-dashboard -n=kubernetes-dashboard |
1 | NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE |
打开游览器 输入IP:32576,访问成功,但是会有https证书警告。
重新生成证书
1 | #Step 1: 新建目录: |
创建认证Token
创建用户配置
1 | cat >> admin-user.yaml << EOF |
创建角色绑定关系配置
1 | cat >> admin-user.yaml << EOF |
然后依次执行
1 | kubectl create -f admin-user.yaml |
获取Token
获取Token命令如下,执行之后会输出token。可以看到是JWT形式的
1 | kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}') |
token方式登录
将Token复制到控制台,登录即可。不过默认的过期时间是15分钟。太短了不太方便。可以在容器加入参数配置,指定过期时效(单位:秒)- --token-ttl=864000
我这里直接设置了10天(不过为了安全,不建议设置这么久)
1 | kubectl edit deployment kubernetes-dashboard -n=kubernetes-dashboard |
至此整个部署就完成了!!!
参考资源