Kubernetes dashboardv2.7.0安裝指南:從零開始搭建可視化界面
一、K8S管理控制臺
Kubernetes Web UI(或Kubernetes Dashboard)是用于管理和監(jiān)視Kubernetes集群的不同工具和用戶界面。以下是一些常見的Kubernetes Web UI工具和用戶界面:
- Kubernetes Dashboard: Kubernetes官方提供的Web用戶界面,用于管理和監(jiān)視Kubernetes集群中的各種資源。它是最常見和廣泛使用的Kubernetes Web UI。
- KubeSphere: KubeSphere是一個(gè)開源的容器化應(yīng)用管理平臺,提供了一個(gè)Web UI,用于創(chuàng)建、部署和管理容器化應(yīng)用程序,以及監(jiān)視和調(diào)優(yōu)Kubernetes集群。
- Rancher: Rancher是一個(gè)用于管理和操作Kubernetes、Docker和其他容器編排引擎的平臺。它提供了一個(gè)直觀的Web界面,支持多個(gè)Kubernetes集群的管理。
- Octant: Octant是一個(gè)開源的Kubernetes Web UI工具,它提供了直觀的集群資源查看和交互式探索功能,可以幫助開發(fā)人員更容易地理解和調(diào)試他們的應(yīng)用程序。
- Lens: Lens是一個(gè)強(qiáng)大的開源Kubernetes IDE,提供了一個(gè)跨平臺的桌面應(yīng)用程序,用于管理和監(jiān)視Kubernetes集群。它支持多個(gè)集群、多個(gè)命名空間和內(nèi)置的CLI終端。
- Kubernetes Web View: Kubernetes Web View是一個(gè)輕量級的開源Web UI,用于查看和導(dǎo)航Kubernetes集群中的資源。它的設(shè)計(jì)簡單,適用于快速查看集群狀態(tài)。
- K9s: 雖然不是傳統(tǒng)的Web UI,但K9s是一個(gè)基于終端的TUI(文本用戶界面)工具,用于管理和監(jiān)視Kubernetes集群。它提供了強(qiáng)大的命令行交互性能。
- Supergiant: Supergiant是一個(gè)用于部署、管理和監(jiān)視Kubernetes集群的平臺。它提供了一個(gè)Web界面,用于自動(dòng)化Kubernetes基礎(chǔ)設(shè)施。
二、Kubernetes-Dashboard v2.7.0
Kubernetes Dashboard 是 Kubernetes 的官方 Web UI。它提供了集群的詳細(xì)信息和管理功能。以下是安裝和使用 Kubernetes Dashboard 的步驟:
安裝前需要先選擇與你安裝的Kubernetes對應(yīng)版本的Dashboard,不然會出現(xiàn)各種問題。每個(gè)releases都會有一張對應(yīng)表,如下圖:
https://github.com/kubernetes/dashboard/releases。
步驟 1:安裝Dashboard
首先,您需要安裝 Kubernetes Dashboard。執(zhí)行以下命令:
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
為了可以在集群外面訪問,我們把recommended.yaml里訪問方式調(diào)整為nodeport。
找到這一段,大約在30行左右,特點(diǎn)是:
- kind: Service
- k8s-app: kubernetes-dashboard
增加一行,type=NodePort。
再執(zhí)行apply部署 Kubernetes-Dashboard v2.7.0。
kubectl apply -y recommended.yaml
執(zhí)行后會卡很長時(shí)間,主要是在下載docker鏡像,從配置文件可以看到是以下兩個(gè)鏡像,如果發(fā)現(xiàn)最后下載出問題也可以單獨(dú)的docker pull下面兩鏡像。
- kubernetesui/dashboard:v2.7.0
- kubernetesui/metrics-scraper:v1.0.8
步驟 2:創(chuàng)建 Dashboard 用戶
Dashboard 默認(rèn)啟用了令牌認(rèn)證,因此您需要?jiǎng)?chuàng)建一個(gè)用戶帳戶來登錄。首先,創(chuàng)建一個(gè) YAML 文件(例如 dashboard-adminuser.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
然后,通過以下命令創(chuàng)建用戶:
kubectl apply -f dashboard-adminuser.yaml
步驟 3:獲取令牌
要獲取登錄到 Dashboard 所需的令牌,請運(yùn)行以下命令:
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
這將顯示一個(gè)長令牌字符串,將其復(fù)制以備用。
步驟 4:查看端口
kubectl get pod,svc -n kubernetes-dashboard
這樣我們通過主機(jī)的ip+30081就可以訪問dashboard了。下面用的ip是主機(jī)的ip,并不是上面出現(xiàn)的cluster-ip,cluster-ip是集群內(nèi)部訪問的ip。
總結(jié):總體來說dashboard安裝還是比較簡單,但如果你安裝的是新版本,感覺還是會出現(xiàn)不少問題,還是得把版本控制好。
三、Dashboard界面
- 登錄界面
- 主界面-監(jiān)控集群的狀態(tài)
- 部署應(yīng)用-可以通過這里直接部署應(yīng)用
- 部署應(yīng)用-詳細(xì)配置
包含應(yīng)用名稱、容器鎰、pod數(shù)量、Service非常的方便,不想設(shè)置配置yaml的可以很方便的部署。
- Deployments
- Pods
- Nodes
- Services
- 監(jiān)控
四、相關(guān)問題
1、token沒有生成
(1)創(chuàng)建serviceaccount
kubectl create serviceaccount myadmin -n kubernetes-dashboard
(2)查看賬戶信息
kubectl get serviceaccount myadmin -o yaml -n kubernetes-dashboard
(3)綁定角色
kubectl create clusterrolebinding myadmin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:myadmin -n kubernetes-dashboard
(4)生成token
kubectl create token myadmin -n kubernetes-dashboard