Kubernetes Dashboard 从v2.0.0-beta1版本开始,集成了一个metrics-scraper的组件,可以通过 Kubernetes 的 Metrics API 收集一些基础资源的监控信息,并在web页面展示。之前部署dashboard的时候,偷懒使用了http的方式访问,这次决定使用openssl自签发证书来搞。
0x01 使用 openssl 签发证书
1 | mkdir certs |
0x02 安装 Dashboard
- 创建 namespace
1 | kubectl create namespace kubernetes-dashboard |
- 导入证书
1 | kubectl create secret generic kubernetes-dashboard-certs --from-file=certs -n kubernetes-dashboard |
- 部署 dashboard
1 | 下载部署配置文件 |
因为前面自己创建了 kubernetes-dashboard 的 namespace ,这里注释掉 recommended.yaml
namespace 定义
1 | apiVersion: v1 |
因为要使用自签发的证书,所以注释掉 kubernetes-dashboard-certs 的 Secret 定义
1 | apiVersion: v1 |
[可选操作] 因为后面想通过 token 的方式登录 dashboard,又不想 token 很快过期,可以通过添加启动参数的方式(--token-ttl=604800
)来修改 token 的 ttl
1 | args: |
部署
1 | kubectl create -f recommended.yaml |
0x03 使用 NodePort 暴露服务
新建 external-https-svc.yaml
1 | kind: Service |
部署
1 | kubectl create -f external-https-svc.yaml |
随后可以通过 kubectl -n=kubernetes-dashboard get svc
查到 service 的端口
0x04 serviceAcount 和 token
新建 admin-user.yaml
(这里使用集群管理员的权限)
1 | apiVersion: v1 |
创建用户
kubectl create -f admin-user.yaml
查询 token
1 | kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}') |
0x05 安装 metrics-server
metrics-server 是 Kubernetes 官方的集群资源利用率信息收集器,是 Heapster 瘦身后的替代品。metrics-server 收集的是集群内由各个节点上kubelet暴露出来的利用率信息,算是集群中基础的监控信息了,主要是提供给例如调度逻辑等核心系统使用。
部署过程参考 metrics-server
先从github把代码clone下来
1 | git clone https://github.com/kubernetes-incubator/metrics-server.git |
直接部署
1 | cd metrics-server/ |
部署完成后需要添加一些启动参数
1 | # edit metric-server deployment to add the flags |
等 kubectl top node
可用,就说明部署好了。
通过浏览器访问 Dashboard,也可以看到 pod 简单的CPU和内存利用率情况。
最后,附上一张 Kubernetes 监控系统的架构图