部署 K8s 圖形化管理工具 Dashboard

misakivv發表於2024-08-17

目錄
  • 一、Dashboard 概述
  • 二、GitHub 地址
  • 三、Dashboard 部署安裝
    • 1、選擇相容版本
    • 2、下載配置檔案
    • 3、新增 Dashboard 的Service型別
    • 4、應用部署
    • 5、檢視 kubernetes-dashboard 名稱空間下資源狀態
    • 6、建立訪問賬戶
    • 7、授權
    • 8、獲取賬號token
    • 9、1.24 版本以後的需要建立一個Pod
  • 四、瀏覽器訪問Dashboard
    • 1、輸入 token 登入
    • 2、頁面

一、Dashboard 概述

Kubernetes Dashboard是一個Web UI,用於管理Kubernetes叢集中的應用程式和資源。它提供了一個視覺化的介面,可以方便地檢視和管理Kubernetes叢集中的各種資源,如Pod、Deployment、Service、ConfigMap等。Dashboard還提供了一些高階功能,如日誌檢視、資源監控、名稱空間管理等。

二、GitHub 地址

dashboard

三、Dashboard 部署安裝

1、選擇相容版本

由於之前升級 k8s 叢集至 1.23.16 所以這裡選擇 Dashboard v2.5.1

image-20240817165455964

2、下載配置檔案

進入到master節點,下載dashboard對應版本的 recommended.yaml 檔案

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml

image-20240817165939384

3、新增 Dashboard 的Service型別

指定 Service 的型別為 NodePort

指定 NodePort Service 在每個節點上使用的埠號 (30000-32767 )

vim recommended.yaml

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: dashboard-metrics-scraper
  name: dashboard-metrics-scraper
  namespace: kubernetes-dashboard
spec:
  type: NodePort	#新增
  ports:
    - port: 8000
      targetPort: 8000
      nodePort: 32111	#新增
  selector:
    k8s-app: dashboard-metrics-scraper

image-20240817170554312

4、應用部署

kubectl apply -f recommended.yaml

image-20240817171405532

5、檢視 kubernetes-dashboard 名稱空間下資源狀態

kubectl get pods,svc -n kubernetes-dashboard

image-20240817180919182

6、建立訪問賬戶

1.24 版本前的操作

kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard

image-20240817181228567

7、授權

kubectl create clusterrolebinding dashboard-admin-rb --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin

8、獲取賬號token

獲取 token 登入Dashboard

kubectl get secrets -n kubernetes-dashboard | grep dashboard-admin

kubectl describe secrets dashboard-admin-token-qfz2z -n kubernetes-dashboard

image-20240817181741324

9、1.24 版本以後的需要建立一個Pod

cat << EOF > pod1.yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod1
  name: pod1
  namespace: kubernetes-dashboard
spec:
  terminationGracePeriodSeconds: 0
  serviceAccount: dashboard-admin
  containers:
  - image: nginx
    imagePullPolicy: IfNotPresent
    name: pod1
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}
EOF
kubectl apply -f pod1.yaml

kubectl exec -it pod1 -n kubernetes-dashboard -- cat /run/secrets/kubernetes.io/serviceaccount/token

image-20240817182111011

四、瀏覽器訪問Dashboard

遇到顯示 Your connection is not private 在頁面空白處英文輸入法輸入

thisisunsafe

1、輸入 token 登入

image-20240817194348050

2、頁面

image-20240817201122792

相關文章