部署环境


IP地址 主机名 功能
10.1.104.200 k8s-deploy 部署节点,不承担实际作用
10.1.104.201 k8s-master01 master节点
10.1.104.202 k8s-master02 master节点
10.1.104.203 k8s-master03 master节点
10.1.104.204 k8s-nginx 负载均衡节点,实际生产中应为HA架构
10.1.104.205 k8s-node01 node节点
10.1.104.206 k8s-node02 node节点
10.1.104.207 k8s-node03 node节点

部署插件_Metrics-Server


Metrics-Server通过kube-apiserver发现所有节点,然后调用kubelet APIs(通过 https 接口)获得各节点(Node)和 Pod 的 CPU、Memory 等资源使用情况。
Metrics-Server部署完成之后,可以使用kubectl top命令及api调用查看资源情况。
Kubernetes 1.12版本开始,安装脚本移除了Heapster,从1.13开始完全移除了对Heapster的支持,Heapster不再被维护。


kubernetes部署metrics-server(k8s-master):

获取Metrics-Server资源清单:

cd /opt/k8s/work,进入k8s工作目录。
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml

修改Metrics-Server部署文件:

vim components.yaml

# image: k8s.gcr.io/metrics-server/metrics-server:v0.3.7
image: mirrorgooglecontainers/metrics-server-amd64:v0.3.2

args:
  - --cert-dir=/tmp
  - --secure-port=4443
  - --kubelet-insecure-tls
  - --metric-resolution=30s
  - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
  • 因为墙外资源的问题,需要替换掉镜像仓库的地址。
  • args中需要添加几个参数,否则可能会有DNS解析不通的可能。
  • 如果master上没有装kube-proxy,则kube-apiserver的启动选项中必须有–enable-aggregator-routing=true选项,否则会导致不能聚合数据而使用kubectl top时候报错。

部署Metrics-Server资源:

kubectl apply -f components.yaml
kubectl get pod -n kube-system | grep metrics-server

确认Metrics-Server应用正确启动:

# 查看节点的资源使用率
kubectl top node

# 查看pod的资源使用率
kubectl top pod

# 通过kube-apiserver获取资源信息
https://10.1.104.201:6443/apis/metrics.k8s.io/v1beta1/nodes
文档更新时间: 2020-10-22 15:55   作者:闻骏