当前位置: 首页 > 工具软件 > medis-server > 使用案例 >

部署metrics-server

郁明诚
2023-12-01

metrics

metrics介绍

1.metrics是一个监控系统资源使用的插件,可以监控node节点上的CPU、内存的使用率,或pod对资源的占用率,通过读资源占用的了解,可以合理的部署容器应用
2.metrics从Kubernetes 1.8开始,资源使用情况的监控可以通过Metrics API的形式获取,具体组件为Metcics Server,用来替换之前的heapster。
使用metrics
查看资源占用情况(没装插件会失败)

kubectl top node

metrics-server是扩展的apiserver,依赖于kube-aggregator,因此需要在apiserver中开启相关参数,开启聚合API

开启api-server聚合服务

修改api-server启动参数(master主机修改)

[root@master ~]# vim /etc/kubernetes/manifests/kube-apiserver.yaml 
- --enable-aggregator-routing=true 
[root@master ~]# systemctl restart kubelet #重启kubelet服务 
[root@master ~]# kubectl -n kube-system get pod kube-apiserver-master -o yaml | grep enable-aggregator-routing 
  - --enable-aggregator-routing=true #验证配置

kubelet证书的申请与签发

metrics需要使用kubelet证书
为kubelet签发证书
重启kubelet服务

要在所有节点执行(master,node-0001,node-0002,node-0003)
申请的多余证书可以使用 (kubectl delete certificatesigningrequests 证书名称) 删除 (所有节点都需要签发节点)

[root@node-0001 ~]# vim /var/lib/kubelet/config.yaml
serverTLSBootstrap: true          #向k8s平台申请证书 
[root@node-0001 ~]# systemctl restart kubelet
#-------------------------签发证书必须在 master 上执行 ------------------------------------
[root@master ~]# kubectl get certificatesigningrequests
NAME        AGE   REQUESTOR            CONDITION
csr-wsfz7   8s    system:node:master   Pending
[root@master ~]# kubectl certificate approve csr-wsfz7
[root@master ~]# kubectl get certificatesigningrequests
NAME        AGE   REQUESTOR            CONDITION
csr-wsfz7   86s   system:node:master   Approved,Issued

安装metrics-server

·官网:https://github.com/kubernets-sigs/metrics-server
下载镜像和资源文件,并导入私有仓库
镜像导入
安装metrics-server
——rbac.yaml 授权控制器
——pdb.yaml 中断控制器
——development.yaml 主进程 metrics
——service.yaml 后端是 metrics 主进程的服务
——apiservice.yaml 注册集群API


```powershell

```powershell
[root@master metrics]# docker load -i metrisc-server.tar.gz
[root@master metrics]# docker tag gcr.io/k8s-staging-metrics-server/metrics-server:master 192.168.1.100:5000/metrics-server:master
[root@master metrics]# docker push 192.168.1.100:5000/metrics-server:master
[root@master metrics]# vim deployment.yaml
29: image: 192.168.1.100:5000/metrics-server:master
[root@master metrics]# kubectl apply -f rbac.yaml
[root@master metrics]# kubectl apply -f pdb.yaml
[root@master metrics]# kubectl apply -f deployment.yaml
[root@master metrics]# kubectl apply -f service.yaml
[root@master metrics]# kubectl apply -f apiservice.yaml
#-------------------------------- 查询验证 ----------------------------------------------
[root@master metrics]# kubectl -n kube-system get pod
NAME                              READY   STATUS    RESTARTS   AGE
metrics-server-78dfb54777-4dcjl   1/1     Running   0          116s
[root@master metrics]# kubectl -n kube-system get apiservices
NAME                                   SERVICE                      AVAILABLE   AGE
v1beta1.metrics.k8s.io                 kube-system/metrics-server   True        2m20s
[root@master metrics]# kubectl top node
NAME        CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master      95m          4%     840Mi           48%       
node-0001   24m          1%     266Mi           15%       
node-0002   24m          1%     270Mi           15%       
node-0003   26m          1%     280Mi           16%   

 类似资料: