4、Kubernetes系列之Kubernetes部署metrics-server
#1、metrics-server簡介
自kubernetes 1.8開始,資源使用指標(如容器 CPU 和內存使用率)經過 Metrics API 在 Kubernetes 中獲取,metrics-server 替代了heapster。Metrics Server 實現了Resource Metrics API,Metrics Server 是集羣範圍資源使用數據的聚合器。
Metrics Server 從每一個節點上的 Kubelet 公開的 Summary API 中採集指標信息。node
Kubernetes中有些組件依賴資源指標API(metric API)的功能 ,如kubectl top 、hpa。若是沒有資源指標API接口,這些組件沒法運行。在以前使用的是Heapster,Heapster廢棄後改用metrics-server。git
kubernetes metrics server 參考文檔 https://github.com/kubernetes-incubator/metrics-servergithub
#2、安裝metrics-serverdocker
一、下載所需文件 # mkdir ./metrics-server # cd metrics-server/ # for file in aggregated-metrics-reader.yaml auth-delegator.yaml auth-reader.yaml metrics-apiservice.yaml metrics-server-deployment.yaml metrics-server-service.yaml resource-reader.yaml; do wget https://raw.githubusercontent.com/kubernetes-incubator/metrics-server/master/deploy/1.8%2B/$file;done 二、這裏須要改2個地方,一個是鏡像的問題,一個是服務啓動的問題。 # 在全部Node節點上執行。先把鏡像國通阿里雲的鏡像源下載下來。再改個名字。 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.3 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.3 k8s.gcr.io/metrics-server-amd64:v0.3.3 # 修改metrics-server-deployment.yaml,增長一個imagePullPolicy,增長command內容,不然會報錯no metrics known for node。相關問題緣由自行百度。 # vim metrics-server-deployment.yaml 30 containers: 31 - name: metrics-server 32 image: k8s.gcr.io/metrics-server-amd64:v0.3.3 33 imagePullPolicy: IfNotPresent 34 command: 35 - /metrics-server 36 - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP 37 - --kubelet-insecure-tls 38 volumeMounts: 39 - name: tmp-dir 40 mountPath: /tmp # kubectl apply -f ./ clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created serviceaccount/metrics-server created deployment.extensions/metrics-server created service/metrics-server created clusterrole.rbac.authorization.k8s.io/system:metrics-server created clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created 三、查看pod狀態 metrics-server-55898485b6-pdhnz 1/1 Running 0 93m 10.244.4.2 huoban-k8s-node01 四、查看node資源使用狀況( 必定要等幾分鐘,採集數據須要時間) kubectl top node NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% huoban-k8s-master01 72m 3% 612Mi 16% huoban-k8s-master02 93m 4% 713Mi 19% huoban-k8s-master03 108m 5% 674Mi 18% huoban-k8s-node01 26m 1% 334Mi 9% huoban-k8s-node02 26m 1% 339Mi 9% 五、查看pod資源使用狀況 # kubectl top pods -n kube-system NAME CPU(cores) MEMORY(bytes) coredns-6967fb4995-4qlfb 1m 13Mi coredns-6967fb4995-frv2p 1m 12Mi etcd-huoban-k8s-master01 22m 358Mi etcd-huoban-k8s-master02 25m 364Mi etcd-huoban-k8s-master03 23m 381Mi kube-apiserver-huoban-k8s-master01 15m 267Mi kube-apiserver-huoban-k8s-master02 13m 255Mi kube-apiserver-huoban-k8s-master03 17m 249Mi kube-controller-manager-huoban-k8s-master01 7m 69Mi kube-controller-manager-huoban-k8s-master02 0m 14Mi kube-controller-manager-huoban-k8s-master03 0m 14Mi kube-flannel-ds-amd64-6bp76 1m 21Mi kube-flannel-ds-amd64-nrvvz 1m 15Mi kube-flannel-ds-amd64-shv4n 1m 16Mi kube-flannel-ds-amd64-t77n4 1m 15Mi kube-proxy-8d522 1m 19Mi kube-proxy-9ng4j 1m 18Mi kube-proxy-htw7p 1m 20Mi kube-proxy-n9r48 1m 17Mi kube-proxy-nsqgh 1m 17Mi kube-scheduler-huoban-k8s-master01 1m 27Mi kube-scheduler-huoban-k8s-master02 0m 16Mi kube-scheduler-huoban-k8s-master03 0m 13Mi kubernetes-dashboard-86844cc55f-sz4gn 0m 13Mi metrics-server-d9d75756b-l75wj 1m 17Mi