上一篇主要介紹了通過Kubernetes API獲取集羣資源信息,這一篇介紹如何部署metrics-server去監聽資源的使用指標,例如Pod中CPU /Mem使用情況。
一、下載metrics-server
首先在GitHub(https://github.com/kubernetes-sigs/metrics-server)中下載對應k8s版本的metrics-server配置,我這裏下載的是0.3.6版本。
下載完畢後解壓
tar -xzvf metrics-server-0.3.6.tar
二、修改配置文件
因爲牆的原因,依賴的鏡像無法順利下載,所以需要修改一下配置文件。
cd metrics-server-0.3.6/deploy/1.8+
vim metrics-server-deployment.yaml
修改後的內容如下:主要變動點是替換image、imagePullPolicy、新增command。
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: metrics-server
namespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: metrics-server
namespace: kube-system
labels:
k8s-app: metrics-server
spec:
selector:
matchLabels:
k8s-app: metrics-server
template:
metadata:
name: metrics-server
labels:
k8s-app: metrics-server
spec:
serviceAccountName: metrics-server
volumes:
# mount in tmp so we can safely use from-scratch images and/or read-only containers
- name: tmp-dir
emptyDir: {}
containers:
- name: metrics-server
image: mirrorgooglecontainers/metrics-server-amd64:v0.3.6 # 修改鏡像源
imagePullPolicy: IfNotPresent # 修改pull的策略
command: # 新增初始命令
- /metrics-server
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
volumeMounts:
- name: tmp-dir
mountPath: /tmp
三、創建服務
修改完配置後,通過kubectl命令去拉起所有服務。
cd metrics-server-0.3.6/deploy/1.8+
kubectl apply -f .
正常的話,所有k8s的對象都會創建。
四、查看效果
分別執行命令,就可以查看metrics-server是否正常,以及查詢的pod資源結果。
kubectl get pods -n kube-system
kubectl top nodes
kubectl top pods
參考文章: