kubernetes 之部署metrics-server v0.3.1


Metrics-server簡介

Metrics-server是用來替換heapster獲取集群上資源指標數據的,heapster從1.11開始逐漸被廢棄了。

在使用heapster時,獲取資源指標是由heapster自已獲取的,heapster有自已的獲取路徑,沒有通過apiserver,后來k8s引入了資源指標API(Metrics API),於是資源指標的數據就從k8s的api中的直接獲取,不必再通過其它途徑。
metrics-server: 它也是一種API Server,提供了核心的Metrics API,就像k8s組件kube-apiserver提供了很多API群組一樣,但它不是k8s組成部分,而是托管運行在k8s之上的Pod。為了讓用戶無縫的使用metrics-server當中的API,還需要把這類自定義的API,通過聚合器聚合到核心API組里,
然后可以把此API當作是核心API的一部分,通過kubectl api-versions可直接查看。
metrics-server收集指標數據的方式是從各節點上kubelet提供的Summary API 即10250端口收集數據,收集Node和Pod核心資源指標數據,主要是內存和cpu方面的使用情況,並將收集的信息存儲在內存中,所以當通過kubectl top不能查看資源數據的歷史情況,其它資源指標數據則通過prometheus采集了。

k8s中很多組件是依賴於資源指標API的功能 ,比如kubectl top 、hpa,如果沒有一個資源指標API接口,這些組件是沒法運行的。早期是依賴heapster。

 https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/metrics-server 

下載六個文件並創建

for file in 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/kubernetes/release-1.11/cluster/addons/metrics-server/$file
done

直接運行kubectl apply -f  .

pod會啟動失敗需要修改參數

將參數修改為你想要的,示例

再執行kubectl apply -f .

可以查看到pod正常運行了

查看container的運行日志:kubectl logs -f metrics-server-v0.3.1-67f6877c59-5jshb -c metrics-server -n kube-system

或有顯示報錯:

解決方法:

  • 提示 無法解析節點的主機名,是metrics-server這個容器不能通過CoreDNS 10.96.0.10:53 解析各Node的主機名,metrics-server連節點時默認是連接節點的主機名,需要加個參數,讓它連接節點的IP:
    “--kubelet-preferred-address-types=InternalIP”

-

  • 因為10250是https端口,連接它時需要提供證書,所以加上--kubelet-insecure-tls,表示不驗證客戶端證書,此前的版本中使用--source=這個參數來指定不驗證客戶端證書。

驗證metrics-server

報錯:

解決方法:是由於權限不夠所造成的。在resource-reader.yaml文件添加一行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM