天天看點

Linux企業運維——Kubernetes(十六)容器資源監控

Linux企業運維——Kubernetes(十六)容器資源監控

文章目錄

    • Linux企業運維——Kubernetes(十六)容器資源監控
    • 一、Metrics-Server
      • 1.1、Metrics-Server簡介
      • 1.2、Metrics-Server部署
    • 二、Dashboard
      • 2.1、Dashboard部署
      • 2.2、Dashboard可視化控制

一、Metrics-Server

1.1、Metrics-Server簡介

Metrics-Server是叢集核心監控資料的聚合器,用來替換之前的heapster。

容器相關的Metrics 主要來自于 kubelet 内置的 cAdvisor 服務,有了Metrics-Server之後,使用者就可以通過标準的Kubernetes API 來通路到這些監控資料。

  • Metrics API 隻可以查詢目前的度量資料,并不儲存曆史資料。
  • Metrics API URI 為 /apis/metrics.k8s.io/,在 k8s.io/metrics 維護。
  • 必須部署metrics-server 才能使用該 API,metrics-server 通過調用 KubeletSummary API

    擷取資料。

Linux企業運維——Kubernetes(十六)容器資源監控
  • Metrics Server 并不是 kube-apiserver 的一部分,而是通過Aggregator

    這種插件機制,在獨立部署的情況下同 kube-apiserver 一起統一對外服務的。

  • kube-aggregator 其實就是一個根據 URL 選擇具體的 API 後端的代理伺服器。

1.2、Metrics-Server部署

Metrics-Server部署:修改端口、分發證書、設定節點解析

真實主機将metrics-server.tar發送給server1

Linux企業運維——Kubernetes(十六)容器資源監控

server1加載鏡像,并将metrics-server上傳至倉庫

Linux企業運維——Kubernetes(十六)容器資源監控

真實主機将components.yaml發送給server2

Linux企業運維——Kubernetes(十六)容器資源監控

server2建立metrics-server目錄并在該目錄下編輯components.yaml

Linux企業運維——Kubernetes(十六)容器資源監控

修改鏡像路徑

Linux企業運維——Kubernetes(十六)容器資源監控

将安全端口和容器端口修改為4443

Linux企業運維——Kubernetes(十六)容器資源監控

應用配置

Linux企業運維——Kubernetes(十六)容器資源監控

檢視kube-system命名空間的pod資訊,可以看到metrics-server處于運作狀态但并未就緒

Linux企業運維——Kubernetes(十六)容器資源監控

server2、3、4都對/var/lib/kubelet//config.yaml配置檔案進行編輯,将serverTLSBootstrap參數修改為true,啟動證書授權,儲存退出

Linux企業運維——Kubernetes(十六)容器資源監控

server2、3、4重新開機kubelet服務

Linux企業運維——Kubernetes(十六)容器資源監控
Linux企業運維——Kubernetes(十六)容器資源監控
Linux企業運維——Kubernetes(十六)容器資源監控

檢視所有證書簽名請求,三個證書簽名請求都處于Pending狀态,對三個請求進行授權後,再檢視發現狀态變為已接受,已釋出

Linux企業運維——Kubernetes(十六)容器資源監控

如果出現

no such host

錯誤提示,這是因為沒有内網的DNS伺服器,是以metrics-server無法解析節點名字。可以通過

kubectl edit configmap coredns -n kube-system

指令修改coredns的configmap,講各個節點的主機名加入到hosts中,這樣所有Pod都可以從CoreDNS中解析各個節點的名字。

Linux企業運維——Kubernetes(十六)容器資源監控

修改完成後metrics-server正常運作

Linux企業運維——Kubernetes(十六)容器資源監控

檢視詳細資訊可以看到後端位址和端口

Linux企業運維——Kubernetes(十六)容器資源監控

通過

kubectl top node

可以監控到所有節點的資源使用情況

Linux企業運維——Kubernetes(十六)容器資源監控

二、Dashboard

Dashboard可以給使用者提供一個可視化的 Web 界面來檢視目前叢集的各種資訊。使用者可以用 Kubernetes Dashboard 部署容器化的應用、監控應用的狀态、執行故障排查任務以及管理 Kubernetes 各種資源。

2.1、Dashboard部署

server2清理前面實驗的所有容器和配置

Linux企業運維——Kubernetes(十六)容器資源監控

建立kubernetesui項目來管理鏡像

Linux企業運維——Kubernetes(十六)容器資源監控

真實主機将dashboard.tar發送給server1

Linux企業運維——Kubernetes(十六)容器資源監控

server1加載鏡像并将鏡像上傳至剛建立的kubernetesui倉庫

Linux企業運維——Kubernetes(十六)容器資源監控

server2建立dashboard目錄,下載下傳recommended.yaml配置檔案

Linux企業運維——Kubernetes(十六)容器資源監控

編輯recommended.yaml配置檔案,修改鏡像路徑

Linux企業運維——Kubernetes(十六)容器資源監控
Linux企業運維——Kubernetes(十六)容器資源監控

應用配置,可以看到建立了新的命名空間和服務等

Linux企業運維——Kubernetes(十六)容器資源監控

新建立的命名空間是kubernetes-dashboard

Linux企業運維——Kubernetes(十六)容器資源監控

檢視kubernetes-dashboard命名空間下的容器和服務是否正常運作

psp安全政策一定要禁掉,否則兩個控制器起不來

Linux企業運維——Kubernetes(十六)容器資源監控

使用

kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard

指令修改服務配置,修改ClusterIP為LoadBalancer使外部可以通路

Linux企業運維——Kubernetes(十六)容器資源監控
Linux企業運維——Kubernetes(十六)容器資源監控

修改完成後檢視其外部通路位址為172.25.19.11,檢視metallb-system命名空間,4個pod正在運作

Linux企業運維——Kubernetes(十六)容器資源監控

真實主機用浏覽器通路dashboard服務位址,需要token認證

Linux企業運維——Kubernetes(十六)容器資源監控

在server2中檢視kubernetes-dashboard命名空間的secrets,檢視token

Linux企業運維——Kubernetes(十六)容器資源監控

檢視詳細資訊,将token複制下來

Linux企業運維——Kubernetes(十六)容器資源監控

在浏覽器通路時将token粘貼進去

Linux企業運維——Kubernetes(十六)容器資源監控

認證成功後進入界面,不過有紅色報錯資訊,因為預設dashboard對叢集沒有操作權限,需要授權

Linux企業運維——Kubernetes(十六)容器資源監控

通過檢視dashboard的clusterrole詳細資訊可以看到隻有讀權限

Linux企業運維——Kubernetes(十六)容器資源監控

修改rbac.yaml配置檔案,在全局角色綁定中将cluster-admin的權限賦予kubernetes-dashboard,使其具有讀寫權限

Linux企業運維——Kubernetes(十六)容器資源監控

應用配置

Linux企業運維——Kubernetes(十六)容器資源監控

現在重新測試通路,可以看到正常運作

Linux企業運維——Kubernetes(十六)容器資源監控

2.2、Dashboard可視化控制

(這裡如果命名空間有資源配額、限制等設定,通過dashboard建立容器可能拉不起來)

在default命名空間下添加新的資源

Linux企業運維——Kubernetes(十六)容器資源監控

按照要求填入參數來建立pod,測試功能是否正常

Linux企業運維——Kubernetes(十六)容器資源監控

可以看到我們建立的pod正常運作并且被監控

Linux企業運維——Kubernetes(十六)容器資源監控

進入server2指令行也可以檢視到剛建立的pod,檢視其ip并測試通路

Linux企業運維——Kubernetes(十六)容器資源監控

在Deployments菜單中,可以進行編輯

Linux企業運維——Kubernetes(十六)容器資源監控

将鏡像的v1版本更新成v2,點選更新

Linux企業運維——Kubernetes(十六)容器資源監控

server2通過指令行再次測試通路,可以看到版本成功修改成了v2

Linux企業運維——Kubernetes(十六)容器資源監控

在Deployments菜單中還可以進行資源縮放

Linux企業運維——Kubernetes(十六)容器資源監控

将副本數由1更改為3

Linux企業運維——Kubernetes(十六)容器資源監控

檢視pod資訊,可以看到現在有3個pod正在運作

Linux企業運維——Kubernetes(十六)容器資源監控