二十,Kubernetes_v1.14.2插件metrics-server

一,安装metrics-server

metrics-server 通过 kube-apiserver 发现所有节点,然后调用 kubelet APIs(通过 https 接口)获得各节点(Node)和 Pod 的 CPU、Memory 等资源使用情况。

从 Kubernetes 1.12 开始,kubernetes 的安装脚本移除了 Heapster,从 1.13 开始完全移除了对 Heapster 的支持,Heapster 不再被维护。

替代方案如下:

  1. 用于支持自动扩缩容的 CPU/memory HPA metrics:metrics-server;
  2. 通用的监控方案:使用第三方可以获取 Prometheus 格式监控指标的监控系统,如 Prometheus Operator;
  3. 事件传输:使用第三方工具来传输、归档 kubernetes events;

Kubernetes Dashboard 还不支持 metrics-server(PR:#3504),如果使用 metrics-server 替代 Heapster,将无法在 dashboard 中以图形展示 Pod 的内存和 CPU 情况,需要通过 Prometheus、Grafana 等监控方案来弥补

 

 

二,更改配置

#进入package目录
cd /opt/kubernetes/package/

#从github克隆metrics-server源码
git clone https://github.com/kubernetes-incubator/metrics-server.git
#进入metrics-server目录
cd /opt/kubernetes/package/metrics-server/deploy/1.8+/
#更换拉取的镜像地址
sed -i 's#k8s.gcr.io/metrics-server-amd64:v0.3.3#lanvv/metrics-server-amd64:v0.3.3#' metrics-server-deployment.yaml
#增加metrics-server启动参数
sed -i '32a \
        args: \
        - --kubelet-insecure-tls \
        - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP \
        - --metric-resolution=30s' metrics-server-deployment.yaml
  • --metric-resolution=30s:从 kubelet 采集数据的周期;
  • kubelet-insecure-tls: 跳过验证kubelet的ca证书,暂时开启。(不推荐用于生产环境);
  • --kubelet-preferred-address-types:优先使用 InternalIP 来访问 kubelet,这样可以避免节点名称没有 DNS 解析记录时,通过节点名称调用节点 kubelet API 失败的情况(未配置时默认的情况);

 

 

 

三,启动 metrics-server服务

#进入metrics-server目录
cd /opt/kubernetes/package/metrics-server/deploy/1.8+/
#创建metrics-server服务
kubectl create -f .

 

 

四,查看运行情况

kubectl -n kube-system get pods -l k8s-app=metrics-server

#输出:
NAME                                                READY   STATUS    RESTARTS   AGE
metrics-server-56c5f96cb4-k6twj   1/1           Running   0                    50m

kubectl get svc -n kube-system  metrics-server

#输出:
NAME                 TYPE          CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
metrics-server   ClusterIP   10.1.55.3          <none>              443/TCP    60m

 

 

五,使用 kubectl top 命令查看集群节点资源使用情况

 kubectl top nodes

#输出:
NAME               CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
172.27.128.11   127m            6%        1775Mi                   46%       
172.27.128.12   73m              3%        1289Mi                   33%       
172.27.128.13   79m              3%        1295Mi                   33% 

 kubectl top pods

#输出:
NAME                                       CPU(cores)   MEMORY(bytes)   
dnsutils-ds-6dqqw                  0m                 0Mi             
dnsutils-ds-bpxjz                    0m                 0Mi             
dnsutils-ds-g56w8                  0m                 0Mi             
my-nginx-5dd67b97fb-8rfl8   0m                  2Mi             
my-nginx-5dd67b97fb-js9h7  0m                 2Mi             
nginx-ds-4g4kx                       0m                 2Mi             
nginx-ds-4zmhg                     0m                  2Mi             
nginx-ds-gq8fc                       0m                  2Mi  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值