为了账号安全,请及时绑定邮箱和手机立即绑定

基于Web的Dashboard来完成Kubernetes的图形化监控和管理

标签:
Java

大家是更喜欢黑白漫画呢?还是彩色动画呢?
图片描述
图片描述
图片来自电影《你的名字》海报和相关临摹,图片版权归属原作者

相信大家是仁者见仁、智者见智。我个人更喜欢看彩色动画,在绚烂的色彩中更能引起视觉冲突和心动的感觉。

类似的,在我们IT界,CLIAPI就是黑白漫画,而GUI界面就是彩色动画。Kubernetes并没有默认部署的界面,但是却有一个可以额外添加的基于Web的Dashboard来完成图形化的监控和管理。

Dashboard安装部署

Dashboard因为没有在Kubernetes中直接默认安装,所以需要进行下载部署。推荐的方式就是采用容器化的方式作为应用部署到Kubernetes平台中。
具体安装过程可以参见官网:
https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/

  1. 首先调用dashboard的yaml文件建立namespace、serviceaccount、service、configmap、secret、role、binding和deployment等。
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml
  2. 修改dashboard的service,使其使用NodePort模式
    kubectl --namespace=kubernetes-dashboard edit service kubernetes-dashboard
    将默认的type: ClusterIP改成type: NodePort模式
  3. 查询service在服务器上分配的物理端口
    kubectl -n kubernetes-dashboard get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.100.103.3 none 8000/TCP 5m24s
kubernetes-dashboard NodePort 10.100.15.196 none 443:32572/TCP 5m24s

上表中的443:32572就表示对应的ClusterIP端口为443,Node节点的端口为32572.

  1. 对于服务器可以直接采用其公网端口的32572来进行Dashboard的Web访问:
    https://public_ip:32572
    其中,32572用上一步命令返回的实际NodePort替代。
    但是你可能会在不同的浏览器上,碰到不同的报错。比如Chrome上的:
    图片描述
    其本质原因是Dashboard采用了自签名的Cacerts,很多浏览器都不支持。
    解决方法可以调整Dashboard的certs。但是最常用的方式其实就是换一个浏览器。推荐大家采用Firefox浏览器来访问Dashboard。
  2. 第一次登陆会触发登陆权限控制 图片描述
    建议大家选用Token模式完成用户验证。
  3. 先创建配置用于建立集群管理员账户
    vi dashboard.yaml
    输入内容并保存:
apiVersion: v1  
kind: ServiceAccount  
metadata:  
name: admin-user  
namespace: kubernetes-dashboard  
---  
apiVersion: rbac.authorization.k8s.io/v1  
kind: ClusterRoleBinding  
metadata:  
name: admin-user  
roleRef:  
apiGroup: rbac.authorization.k8s.io  
kind: ClusterRole  
name: cluster-admin  
subjects:  
- kind: ServiceAccount  
name: admin-user  
namespace: kubernetes-dashboard  
  1. 然后激活这个账号,并赋予其cluster-admin权限
    kubectl apply -f dashboard.yaml
  2. 查询新建账号的Bearer Token
#kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')  
Name: admin-user-token-dtqm2  
Namespace: kubernetes-dashboard  
Labels: <none>  
Annotations: kubernetes.io/service-account.name: admin-user  
kubernetes.io/service-account.uid: 2e360fda-a16d-44ef-8281-2b3e03618151  
  
Type: kubernetes.io/service-account-token  
  
Data  
====  
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWR0cW0yIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIyZTM2MGZkYS1hMTZkLTQ0ZWYtODI4MS0yYjNlMDM2MTgxNTEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.Coa17yCI7FkRDEhYbrRhPFGbdN_5Buwu3cxvNzLv0CTXiRpz1WjMEC11GKG1xue16nq8KXDZy0BYoRhucFF0tYWUfHKC9Nt6cDh9yXuqGiHsL05h-1s0aA04UiQ850NHrGbo8GqTzN22iZfhMac4tdadU-QiPvQa5GzGVPsT9BsO2iv58pONjeprt3b0g6pMM6rqad8PeODq9UAhPXIZXiUiRan7Nh24AGKv5SwJ6FA7ueBP5OoCjKTMvxiBuiy3gnk39f1kWB2XH9vCKMONdS1GgC15wuXC0k7eaAJZQp-y0nOuq7Jv43hFWTMXhOoJf5kuu4KB9MJq0uGgIeZaEg  
ca.crt: 1025 bytes  
namespace: 20 bytes  
  1. 将上图中的token值输入Dashboard图形化界面 图片描述
    顺利进入了Dashboard!
    图片描述
  1. 部署Deployment 图片描述
    单击顶部操作区的+Create按钮就可以创建Deployment等控制器了。可以选择Create from form分页来进行容器镜像的指定,也可以选择Create from input从YAML或JSON文件来创建deployment。
  2. 在线修改 图片描述
    点击具体的控制器,可以选择Edit进行YAML文件的修改。修改完保存后,Dashboard会自动Apply这个变更,从而是修改后的功能立刻生效。
  3. 信息查询
    图片描述
    类似于Kuberctl describe,当点击具体的控制器后,可以看到该控制器的主要配置和状态。
  4. 日志查询 图片描述
    点击某一个POD,可以在右侧的选项栏选择logs,效果和kubernetes logs类似。
  5. 其他监控
    在Dashboard主界面可以通过切换namespace查询更多的配置和状态信息。具体功能留待大家实践。

大家通过本篇文章的学习,是更加喜欢简单明了的黑白漫画了呢?还是丰富多彩的动画了呢?课程,我们将接着带着大家进入另一个专题,了解Kubernetes的监控和日志管理。

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消