【K8S 三】部署 metrics-server 插件
目錄
Metrics Server
安裝前提
下載鏡像并配置啟動YAML
?部署并驗證
這篇文章寫得比較早,當時是在kubeadm部署環境下實施的,如果您是通過二進制部署(因為這種部署拓撲比較靈活)出現了問題可以移步《【K8S 七】Metrics Server部署中的問題》,可能會對您有幫助。
Metrics Server
Metrics Server是一種可伸縮的、高效的容器資源指標源,用于Kubernetes內置的自動縮放管道。
Metrics服務器從Kubelets收集資源指標,并通過Metrics API在Kubernetes apiserver中公開它們,以便HPA(Horizontal Pod Autoscaler)和VPA(Vertical Pod Autoscaler)使用。Metrics API也可以被kubectl top訪問,這使得它更容易調試彈性伸縮管道。
Metrics服務器并不用于非彈性伸縮的目的。例如,不要使用它將指標轉發到監視解決方案,或者將其作為監視解決方案指標的來源。
Horizontal Pod Autoscaler:水平Pod彈性伸縮;Vertical Pod Autoscaler:垂直Pod彈性伸縮。
?資源消耗:Metrics Server uses 1m core of CPU and 3 MB of memory per node
?可擴展支持最多5,000個節點集群
詳情參考kubernetes-sigs/metrics-server?
安裝前提
下面所有操作的前提是已經存在搭建好的Kubernetes集群環境,且apiserver要配置證書,且metrics-server也需要CA證書,不然就會報錯(使用kubeadm工具會簡單很多):
?Expected to load root CA config from /var/run/secrets/kubernetes.io/serviceaccount/ca.crt, but got err: open /var/run/secrets/kubernetes.io/serviceaccount/ca.crt: no such file or directory
Error: unable to load configmap based request-header-client-ca-file: Get "https://10.254.0.1:443/api/v1/namespaces/kube-system/configmaps/extension-apiserver-authentication": x509: certificate signed by unknown authority
下載鏡像并配置啟動YAML
目前Metrics-Server的鏡像是k8s.gcr.io/metrics-server/metrics-server:v0.4.1,無法科學上網的同學,只能曲線救國,手動下載鏡像到本地或推到私有鏡像庫:
本人已經將鏡像推到了實驗環境的私有倉庫中:192.168.x.x/library/metrics-server:v0.4.1
下載啟動配置文件,并對文件進行如下配置,否則metrics-server啟動會報錯:
unable to fully scrape metrics from node kubeadmin-node: unable to fetch metrics from node kubeadmin-node: Get "https://192.168.x.x:10250/stats/summary?only_cpu_and_memory=true": x509: cannot validate certificate for 192.168.x.x because it doesn't contain any IP SANs, unable to fully scrape metrics from node rhel-8-11.8: unable to fetch metrics from node rhel-8-11.8: Get "https://192.168.x.y:10250/stats/summary?only_cpu_and_memory=true": x509: cannot validate certificate for 192.168.x.y because it doesn't contain any IP SANs
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml cp components.yaml kube-metric-server.yaml diff components.yaml kube-metric-server.yaml 133a134,135 > - --metric-resolution=30s > - --kubelet-insecure-tls 136c138 < image: k8s.gcr.io/metrics-server/metrics-server:v0.6.1 --- > image: registry.aliyuncs.com/google_containers/metrics-server:v0.6.1?部署并驗證
$ kubectl apply -f kube-metrics-server.yaml $ kubectl get po -o wide -n kube-system NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES metrics-server-6695c86795-gfkhh 1/1 Running 0 58m 172.254.1.14 kubeadmin-node <none> <none>$ kubectl top node NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% kubeadmin-node 57m 0% 2085Mi 27% rhel-8-11.8 126m 1% 1714Mi 22% $ kubectl top pod mysql-gbprd 1m 467Mi myweb-5478cb4767-gm5k2 1m 195Mi myweb-5478cb4767-h5snw 1m 195Mi總結
以上是生活随笔為你收集整理的【K8S 三】部署 metrics-server 插件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyEclipse中jer配置
- 下一篇: 电路中极性与非极性电容并联的作用