k8s之Dashboard部署及使用

前面章節 Kubernetes 所有的操作我們都是通過命令行工具 kubectl 完成的。爲了提供更豐富的用戶體驗,Kubernetes 還開發了一個基於 Web 的 Dashboard,用戶可以用 Kubernetes Dashboard 部署容器化的應用、監控應用的狀態、執行故障排查任務以及管理 Kubernetes 各種資源。

在 Kubernetes Dashboard 中可以查看集羣中應用的運行狀態,也能夠創建和修改各種 Kubernetes 資源,比如 Deployment、Job、DaemonSet 等。用戶可以 Scale Up/Down Deployment、執行 Rolling Update、重啓某個 Pod 或者通過嚮導部署新的應用。Dashboard 能顯示集羣中各種資源的狀態以及日誌信息。

可以說,Kubernetes Dashboard 提供了 kubectl 的絕大部分功能,大家可以根據情況進行選擇。

安裝

Kubernetes 默認沒有部署 Dashboard,可通過如下命令安裝:

kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

Dashboard 會在 kube-system namespace 中創建自己的 Deployment 和 Service。

[root@k8s-master ~]# kubectl get deployments. -n kube-system kubernetes-dashboard -o wide
NAME                   READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS             IMAGES                                          SELECTOR
kubernetes-dashboard   1/1     1            1           20m   kubernetes-dashboard   k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1   k8s-app=kubernetes-dashboard
[root@k8s-master ~]# kubectl get service -n kube-system kubernetes-dashboard 
NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
kubernetes-dashboard   ClusterIP   10.108.187.212   <none>        443/TCP   22m

因爲 Service 是 ClusterIP 類型,爲了方便使用,我們可通過 kubectl --namespace=kube-system edit service kubernetes-dashboard 修改成 NodePort 類型。

spec:
  clusterIP: 10.108.187.212
  externalTrafficPolicy: Cluster
  ports:
  - nodePort: 30338
    port: 443
    protocol: TCP
    targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

保存修改,此時已經爲 Service 分配了端口 30338。

[root@k8s-master ~]# kubectl get service -n kube-system kubernetes-dashboard  
NAME                   TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
kubernetes-dashboard   NodePort   10.108.187.212   <none>        443:30338/TCP   28m

通過瀏覽器訪問 Dashboard https://192.168.31.200:30338/,登錄界面如下

配置登錄權限
Dashboard 支持 Kubeconfig 和 Token 兩種認證方式,爲了簡化配置,我們通過配置文件 dashboard-admin.yaml 爲 Dashboard 默認用戶賦予 admin 權限。

執行 kubectl apply 使之生效。

現在直接點擊登錄頁面的 SKIP 就可以進入 Dashboard 了。

Dashboard的使用

Dashboard 界面結構
Dashboard 的界面很簡潔,分爲三個大的區域。

頂部操作區
k8s之Dashboard部署及使用
在這裏用戶可以搜索集羣中的資源、創建資源或退出。

左邊導航菜單
通過導航菜單可以查看和管理集羣中的各種資源。菜單項按照資源的層級分爲兩類:
Cluster 級別的資源
k8s之Dashboard部署及使用
Namespace 級別的資源
k8s之Dashboard部署及使用
默認顯示的是 default Namespace,可以進行切換:

中間主體區
在導航菜單中點擊了某類資源,中間主體區就會顯示該資源所有實例,比如點擊 Pods。

典型使用場景
接下來我們介紹幾個 Dashboard 的典型使用場景。

部署 Deployment
點擊頂部操作區的 + CREATE 按鈕。

k8s之Dashboard部署及使用

用戶可以直接輸入要部署應用的名字、鏡像、副本數等信息;也可以上傳 YAML 配置文件。如果是上傳配置文件,則可以創建任意類型的資源,不僅僅是 Deployment。

在線操作
對於每種資源,都可以點擊 按鈕執行各種操作。

k8s之Dashboard部署及使用

比如點擊 View/edit YAML 可直接修改資源的配置,保存後立即生效,其效果與 kubectl edit 一樣。
k8s之Dashboard部署及使用

查看資源詳細信息
點擊某個資源實例的名字,可以查看到詳細信息,其效果與 kubectl describe 一樣。

k8s之Dashboard部署及使用

查看 Pod 日誌
在 Pod 及其父資源(DaemonSet、ReplicaSet 等)頁面點擊 按鈕,可以查看 Pod 的日誌,其效果與 kubectl logs 一樣。

k8s之Dashboard部署及使用

Kubernetes Dashboard 界面設計友好,自解釋性強,可以看作 GUI 版的 kubectl。

小結
本章介紹了Kubernetes Dashboard 的安裝和使用方法。Dashboard能完成日常管理的大部分工作,可以作爲命令行工具 kubectl 的補充。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章