基於Web的Dashboard來完成Kubernetes的圖形化監控和
大家是更喜歡黑白漫畫呢?還是彩色動畫呢?
圖片來自電影《你的名字》海報和相關臨摹,圖片版權歸屬原作者
相信大家是仁者見仁、智者見智。我個人更喜歡看彩色動畫,在絢爛的色彩中更能引起視覺衝突和心動的感覺。
類似的,在我們IT界,和就是黑白漫畫,而GUI介面就是彩色動畫。Kubernetes並沒有預設部署的介面,但是卻有一個可以額外新增的基於Web的Dashboard來完成圖形化的監控和管理。
安裝部署
Dashboard因為沒有在中直接預設安裝,所以需要進行下載部署。推薦的方式就是採用容器化的方式作為應用部署到Kubernetes平臺中。
具體安裝過程可以參見官網:
- 首先呼叫dashboard的yaml檔案建立namespace、serviceaccount、service、configmap、secret、role、binding和deployment等。
kubectl apply -f
- 修改dashboard的service,使其使用NodePort模式
kubectl --namespace=kubernetes-dashboard edit service kubernetes-dashboard
將預設的type: ClusterIP改成type: NodePort模式 - 查詢service在伺服器上分配的物理埠
kubectl -n kubernetes-dashboard get service
NAME | TYPE | CLUSTER-IP | EXTERNAL-IP | PORT(S) | AGE |
---|---|---|---|---|---|
dashboard-metrics-scraper | ClusterIP | 10.100.103.3 | none | 8000/TCP | 5m24s |
kubernetes-dashboard | NodePort | 10.100.15.196 | none | 443:32572 /TCP | 5m24s |
上表中的443:32572就表示對應的ClusterIP埠為443,Node節點的埠為32572.
- 對於伺服器可以直接採用其公網埠的32572來進行Dashboard的Web訪問:
其中,32572用上一步命令返回的實際NodePort替代。
但是你可能會在不同的瀏覽器上,碰到不同的報錯。比如Chrome上的:
其本質原因是Dashboard採用了自簽名的Cacerts,很多瀏覽器都不支援。
解決方法可以調整Dashboard的certs。但是最常用的方式其實就是換一個瀏覽器。推薦大家採用Firefox瀏覽器來訪問Dashboard。 - 第一次登陸會觸發登陸許可權控制
建議大家選用Token模式完成使用者驗證。 - 先建立配置用於建立叢集管理員賬戶
vi dashboard.yaml
輸入內容並儲存:
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
- 然後啟用這個賬號,並賦予其cluster-admin許可權
kubectl apply -f dashboard.yaml
- 查詢新建賬號的Bearer Token
#kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
Name: admin-user-token-dtqm2
Namespace: kubernetes-dashboard
Labels: <none>
Annotations: kubernetes.io/service-account.name: admin-user
kubernetes.io/service-account.uid: 2e360fda-a16d-44ef-8281-2b3e03618151
Type: kubernetes.io/service-account-token
Data
====
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWR0cW0yIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIyZTM2MGZkYS1hMTZkLTQ0ZWYtODI4MS0yYjNlMDM2MTgxNTEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.Coa17yCI7FkRDEhYbrRhPFGbdN_5Buwu3cxvNzLv0CTXiRpz1WjMEC11GKG1xue16nq8KXDZy0BYoRhucFF0tYWUfHKC9Nt6cDh9yXuqGiHsL05h-1s0aA04UiQ850NHrGbo8GqTzN22iZfhMac4tdadU-QiPvQa5GzGVPsT9BsO2iv58pONjeprt3b0g6pMM6rqad8PeODq9UAhPXIZXiUiRan7Nh24AGKv5SwJ6FA7ueBP5OoCjKTMvxiBuiy3gnk39f1kWB2XH9vCKMONdS1GgC15wuXC0k7eaAJZQp-y0nOuq7Jv43hFWTMXhOoJf5kuu4KB9MJq0uGgIeZaEg
ca.crt: 1025 bytes
namespace: 20 bytes
- 將上圖中的token值輸入Dashboard圖形化介面
順利進入了Dashboard!
- 部署Deployment
單擊頂部操作區的+Create按鈕就可以建立Deployment等控制器了。可以選擇Create from form
分頁來進行容器映象的指定,也可以選擇Create from input
從YAML或JSON檔案來建立deployment。 - 線上修改
點選具體的控制器,可以選擇Edit
進行YAML檔案的修改。修改完儲存後,Dashboard會自動Apply這個變更,從而是修改後的功能立刻生效。 - 資訊查詢
類似於Kuberctl describe
,當點選具體的控制器後,可以看到該控制器的主要配置和狀態。 - 日誌查詢
點選某一個POD,可以在右側的選項欄選擇logs,效果和kubernetes logs
類似。 - 其他監控
在Dashboard主介面可以透過切換namespace查詢更多的配置和狀態資訊。具體功能留待大家實踐。
大家透過本篇文章的學習,是更加喜歡簡單明瞭的黑白漫畫了呢?還是豐富多彩的動畫了呢?,我們將接著帶著大家進入另一個專題,瞭解Kubernetes的監控和日誌管理。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3705/viewspace-2824135/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Hystrix 監控視覺化頁面——Dashboard 流監控視覺化
- Kubernetes的Resource和Dashboard(十三)
- 乾貨|EasyMR 基於 Kubernetes 應用的監控實踐
- 基於OkHttp的Http監控HTTP
- Grafana監控圖形拉取Grafana
- 蘇寧基於 AI 和圖技術的智慧監控體系的建設AI
- Sentinel Dashboard(基於1.8.1)流控規則持久化到Nacos——涉及部分Sentinel Dashboard原始碼改造持久化原始碼
- 基於Web的6個完美3D圖形WebGL庫Web3D
- Kubernetes之日誌和監控(十五)
- 基於Ping和Telnet/NC的監控指令碼案例分析指令碼
- 微服務SpringCloud之熔斷監控Hystrix Dashboard和Turbine微服務SpringGCCloud
- springcloud(五):熔斷監控Hystrix DashboardSpringGCCloud
- python獲取zabbix監控項圖形Python
- GitHub - nx10/httpgd: 用於R語言的基於web的SVG圖形裝置GithubHTTPR語言WebSVG
- Kubernetes監控實踐(2):可行監控方案之Prometheus和SensuPrometheus
- 基於 Prometheus 的監控系統實踐Prometheus
- 基於 prometheus 的微服務指標監控Prometheus微服務指標
- 部署 K8s 圖形化管理工具 DashboardK8S
- 02 . Zabbix配置監控項及聚合圖形
- 基於Prometheus和Grafana打造業務監控看板PrometheusGrafana
- Kubernetes監控之InfluxDBUX
- Kubernetes監控實踐
- 基於websocket的celery任務狀態監控Web
- 基於 Prometheus 的監控神器,簡單靈活!Prometheus
- 基於 HTML5 的計量站三維視覺化監控系統 Web 組態工控應用HTML視覺化Web
- 跟我學SpringCloud | 第五篇:熔斷監控Hystrix Dashboard和TurbineSpringGCCloud
- 阿里雲容器Kubernetes監控(一)-資源監控阿里
- 基於ARM的自來水廠全自動恆壓供水監控系統
- 基於Serverless雲函式站點監控的方法Server函式
- 基於 ZooKeeper 實現爬蟲叢集的監控爬蟲
- 基於 IntersectionObserver 實現一個元件的曝光監控Server元件
- 基於 HTML5 WebGL 的計量站三維視覺化監控系統 Web 組態工控應用HTMLWeb視覺化
- Kubernetes Dashboard 安裝
- 在Kubernetes中監控NginxNginx
- 5招搞定Kubernetes監控
- SpringCloud使用Prometheus監控(基於Eureka)SpringGCCloudPrometheus
- Redis Stack:基於Redis的搜尋、文件、圖形和時間序列功能Redis
- Kubernetes 叢集和應用監控方案的設計與實踐