安裝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,可通過如下命令安裝:
[root@ken ~]# kubectl apply -f http://mirror.faasx.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
第二步:查看service
[root@ken ~]# kubectl --namespace=kube-system get deployment kubernetes-dashboard NAME READY UP-TO-DATE AVAILABLE AGE kubernetes-dashboard 1/1 1 1 31s [root@ken ~]# kubectl --namespace=kube-system get service kubernetes-dashboard NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes-dashboard NodePort 10.96.4.88 <none> 443/TCP 16m
第三步:允許外部訪問
(會占用終端)
[root@ken ~]# kubectl proxy --address='0.0.0.0' --accept-hosts='^*$'
第四步:通過瀏覽器訪問 Dashboard https://172.20.10.2:8001/,登錄界面如下:
第五步:配置登錄權限
Dashboard 支持 Kubeconfig 和 Token 兩種認證方式,為了簡化配置,我們通過配置文件 dashboard-admin.yaml 為 Dashboard 默認用戶賦予 admin 權限。
[root@ken ~]# cat dashboard-admin.yml apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: kubernetes-dashboard labels: k8s-app: kubernetes-dashboard roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: kubernetes-dashboard namespace: kube-system
第六步:執行kubectl apply使之生效
[root@ken ~]# kubectl apply -f dashboard-admin.yml
第七步:現在直接點擊登錄頁面的 SKIP 就可以進入 Dashboard 了。
dashboard界面結構
Dashboard 的界面很簡潔,分為三個大的區域。
-
頂部操作區
在這里用戶可以搜索集群中的資源、創建資源或退出。 -
左邊導航菜單
通過導航菜單可以查看和管理集群中的各種資源。菜單項按照資源的層級分為兩類:
Cluster 級別的資源
Namespace 級別的資源
默認顯示的是default
Namespace,可以進行切換: -
中間主體區
在導航菜單中點擊了某類資源,中間主體區就會顯示該資源所有實例,比如點擊Pods
。
典型使用場景
接下來我們介紹幾個 Dashboard 的典型使用場景。
部署 Deployment
點擊頂部操作區的 + CREATE
按鈕。
用戶可以直接輸入要部署應用的名字、鏡像、副本數等信息;也可以上傳 YAML 配置文件。如果是上傳配置文件,則可以創建任意類型的資源,不僅僅是 Deployment。
在線操作
對於每種資源,都可以點擊
按鈕執行各種操作。
比如點擊 View/edit YAML
可直接修改資源的配置,保存后立即生效,其效果與 kubectl edit
一樣。
查看資源詳細信息
點擊某個資源實例的名字,可以查看到詳細信息,其效果與 kubectl describe
一樣。
查看 Pod 日志
在 Pod 及其父資源(DaemonSet、ReplicaSet 等)頁面點擊 按鈕,可以查看 Pod 的日志,其效果與
kubectl logs
一樣。
Kubernetes Dashboard 界面設計友好,自解釋性強,可以看作 GUI 版的 kubectl