20 k8sMetric 简介
1️⃣metrics-server 会请求每台节点的 kubelet 接口来获取监控数据,接口通过 HTTPS 暴露,但 Kubernetes 节点的 kubelet 使用的是自签证书,若 metrics-server 直接请求 kubelet 接口,将产生证书校验失败的错误,因此需要在 components.yaml 文件中加上。容器服务某些 k8s 发行版自带 Resource Metrics
metrics-server 可实现 Kubernetes 的 Resource Metrics API(metrics.k8s.io),通过此 API 可以查询 Pod 与 Node 的部分监控指标,Pod 的监控指标用于 HPA、VPA 与 kubectl top pods -n ns 命令,而 Node 指标目前只用于 kubectl top nodes 命令。容器服务某些 k8s 发行版自带 Resource Metrics API 的实现,指向 hpa-metrics-server,且目前提供 Pod 的监控指标。
将 metrics-server 安装到集群后,可以通过 kubectl top nodes 获取节点的监控概览,以替换 Resource Metrics API 的实现。容器服务控制台创建的 HPA 不会用到 Resource Metrics,仅使用 Custom Metrics,因此安装 metrics-server 不会影响在 Kubernetes 控制台创建的 HPA。本文将介绍如何在 Kubernetes 上安装 metrics-server。
二. 下载 yaml 部署文件
下载 metrics-server 官方的部署 yaml:
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.5.0/components.yaml
1
修改 metrics-server 启动参数:
1️⃣metrics-server 会请求每台节点的 kubelet 接口来获取监控数据,接口通过 HTTPS 暴露,但 Kubernetes 节点的 kubelet 使用的是自签证书,若 metrics-server 直接请求 kubelet 接口,将产生证书校验失败的错误,因此需要在 components.yaml 文件中加上 --kubelet-insecure-tls
启动参数。 2️⃣由于 metrics-server 官方镜像仓库存储在 k8s.gcr.io ,国内可能无法直接拉取,您可以自行同步到 CCR 或使用已同步的镜像 ccr.ccs.tencentyun.com/mirrors/metrics-server:v0.5.0
。
# 修改两处如下
containers:
- args:
- --cert-dir=/tmp
- --secure-port=443
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
- --kubelet-insecure-tls # 加上该启动参数
image: ccr.ccs.tencentyun.com/mirrors/metrics-server:v0.5.0 # 国内集群,请替换成这个镜像
三. 安装使用
执行安装
[root@master ~]#kubectl apply -f components.yaml
......
[root@master ~]#kubectl get pod -n kube-system | grep metrics-server
metrics-server-c44f75469-rfllg 1/1 Running 0 35s
1234
[root@master ~]#kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
k8s-m-01 213m 10% 1173Mi 63%
k8s-n-01 65m 3% 548Mi 29%
k8s-n-02 68m 3% 433Mi 23%
监控 pod
[root@master ~]#kubectl top pods -n kube-system
NAME CPU(cores) MEMORY(bytes)
coredns-978bbc4b6-dh5sz 3m 17Mi
coredns-978bbc4b6-xzg5h 4m 24Mi
etcd-k8s-m-01 17m 112Mi
kube-apiserver-k8s-m-01 72m 346Mi
kube-controller-manager-k8s-m-01 24m 74Mi
kube-flannel-ds-8hjd2 5m 32Mi
kube-flannel-ds-l9wxm 3m 31Mi
kube-flannel-ds-m4xnq 6m 28Mi
kube-proxy-2ftlg 1m 31Mi
kube-proxy-7k84n 1m 24Mi
kube-proxy-fzwwh 1m 22Mi
kube-scheduler-k8s-m-01 4m 33Mi
kuboard-74c645f5df-7vjxs 0m 7Mi
metrics-server-c44f75469-hxw7f 5m 20Mi
更多推荐
所有评论(0)