部署和訪問 Kubernetes Dashboard
Dashboard 是一個基於 Web 的 Kubernetes 使用者介面。你可以使用 Dashboard 將容器化應用部署到 Kubernetes 叢集中,排查容器化應用故障,並管理叢集資源。你可以使用 Dashboard 獲取叢集中執行應用的概覽,以及建立或修改單個 Kubernetes 資源(如 Deployments、Jobs、DaemonSets 等)。例如,你可以擴縮 Deployment,啟動滾動更新,重啟 Pod,或使用部署嚮導部署新的應用。
Dashboard 還提供叢集中 Kubernetes 資源的狀態資訊以及可能發生的任何錯誤。
部署 Dashboard UI
注意
Kubernetes Dashboard 目前僅支援基於 Helm 的安裝,因為它更快,並且能夠更好地控制 Dashboard 執行所需的所有依賴項。Dashboard UI 預設不部署。要部署它,請執行以下命令:
# Add kubernetes-dashboard repository
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
# Deploy a Helm Release named "kubernetes-dashboard" using the kubernetes-dashboard chart
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
訪問 Dashboard UI
為了保護你的叢集資料,Dashboard 預設以最小的 RBAC 配置進行部署。目前,Dashboard 僅支援使用 Bearer Token 登入。要為此演示建立令牌,你可以按照我們的指南建立示例使用者。
警告
教程中建立的示例使用者將擁有管理許可權,僅供教育目的使用。命令列代理
你可以透過執行以下命令,使用 kubectl
命令列工具啟用對 Dashboard 的訪問:
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443
Kubectl 將使 Dashboard 可在 https://:8443 訪問。
UI 只能從執行此命令的機器訪問。有關更多選項,請參閱 kubectl port-forward --help
。
注意
kubeconfig 身份驗證方法不支援外部身份提供商或基於 X.509 證書的身份驗證。歡迎介面
當你在空叢集上訪問 Dashboard 時,你會看到歡迎頁面。此頁面包含指向本文件的連結以及用於部署你的第一個應用程式的按鈕。此外,你可以檢視叢集 kube-system
名稱空間中預設執行的系統應用程式,例如 Dashboard 本身。
部署容器化應用程式
Dashboard 允許你透過一個簡單的嚮導,將容器化應用程式建立並部署為 Deployment 和可選的 Service。你可以手動指定應用程式詳細資訊,或上傳包含應用程式配置的 YAML 或 JSON 清單檔案。
點選任何頁面右上角的建立按鈕開始。
指定應用程式詳細資訊
部署嚮導要求你提供以下資訊:
應用名稱(必填):應用程式的名稱。如果部署了 Deployment 和 Service,將為其新增一個帶有該名稱的標籤。
應用程式名稱在所選的 Kubernetes 名稱空間中必須是唯一的。它必須以小寫字母開頭,以小寫字母或數字結尾,並且只能包含小寫字母、數字和破折號(-)。它限制為 24 個字元。前導和尾隨空格將被忽略。
容器映象(必填):任何登錄檔上的公共 Docker 容器映象的 URL,或私有映象(通常託管在 Google Container Registry 或 Docker Hub 上)。容器映象規範必須以冒號結尾。
Pod 數量(必填):你希望應用程式部署的目標 Pod 數量。該值必須是正整數。
將建立一個 Deployment 來維護叢集中所需的 Pod 數量。
Service(可選):對於應用程式的某些部分(例如前端),你可能希望將 Service 暴露到叢集外部的外部(可能是公共)IP 地址(外部 Service)。
注意
對於外部 Service,你可能需要開啟一個或多個埠來實現此目的。其他僅在叢集內部可見的 Service 稱為內部 Service。
無論 Service 型別如何,如果你選擇建立 Service 並且你的容器監聽一個埠(傳入),你需要指定兩個埠。將建立 Service,將埠(傳入)對映到容器看到的目標埠。此 Service 將路由到你部署的 Pod。支援的協議是 TCP 和 UDP。此 Service 的內部 DNS 名稱將是你上面指定的應用程式名稱的值。
如果需要,你可以展開高階選項部分,在那裡你可以指定更多設定:
描述:你在此處輸入的文字將作為註解新增到 Deployment 中,並顯示在應用程式的詳細資訊中。
標籤:應用程式預設使用的標籤是應用程式名稱和版本。你可以指定要應用於 Deployment、Service(如果有)和 Pod 的額外標籤,例如釋出、環境、層級、分割槽和釋出軌道。
示例
release=1.0 tier=frontend environment=pod track=stable
名稱空間:Kubernetes 支援由同一物理叢集支援的多個虛擬叢集。這些虛擬叢集稱為名稱空間。它們允許你將資源劃分為邏輯命名的組。
Dashboard 在下拉列表中提供了所有可用的名稱空間,並允許你建立新的名稱空間。名稱空間名稱最多可包含 63 個字母數字字元和破折號(-),但不能包含大寫字母。名稱空間名稱不應僅由數字組成。如果名稱設定為數字,例如 10,則 Pod 將放置在預設名稱空間中。
如果名稱空間建立成功,則預設選中該名稱空間。如果建立失敗,則選中第一個名稱空間。
映象拉取 Secret:如果指定的 Docker 容器映象為私有映象,則可能需要拉取 secret 憑據。
Dashboard 在下拉列表中提供了所有可用的 Secret,並允許你建立新的 Secret。Secret 名稱必須遵循 DNS 域名語法,例如
new.image-pull.secret
。Secret 的內容必須採用 base64 編碼,並指定在.dockercfg
檔案中。Secret 名稱最多可包含 253 個字元。如果映象拉取 Secret 建立成功,則預設選中該 Secret。如果建立失敗,則不應用任何 Secret。
CPU 要求(核)和記憶體要求(MiB):你可以指定容器的最小資源限制。預設情況下,Pod 以無限制的 CPU 和記憶體限制執行。
執行命令和執行命令引數:預設情況下,你的容器執行指定的 Docker 映象的預設入口點命令。你可以使用命令選項和引數來覆蓋預設值。
以特權方式執行:此設定決定特權容器中的程序是否等同於在主機上以 root 身份執行的程序。特權容器可以利用操作網路堆疊和訪問裝置等功能。
環境變數:Kubernetes 透過環境變數暴露 Service。你可以編寫環境變數或使用環境變數的值將引數傳遞給你的命令。它們可以在應用程式中用於查詢 Service。值可以使用
$(VAR_NAME)
語法引用其他變數。
上傳 YAML 或 JSON 檔案
Kubernetes 支援宣告式配置。在這種風格中,所有配置都儲存在清單(YAML 或 JSON 配置檔案)中。清單使用 Kubernetes API 資源模式。
除了在部署嚮導中指定應用程式詳細資訊外,你還可以將應用程式定義在一個或多個清單中,並使用 Dashboard 上傳檔案。
使用 Dashboard
以下部分描述了 Kubernetes Dashboard UI 的檢視;它們提供什麼以及如何使用它們。
導航
當叢集中定義了 Kubernetes 物件時,Dashboard 會在初始檢視中顯示它們。預設情況下,只顯示來自 default 名稱空間的物件,這可以透過導航選單中的名稱空間選擇器進行更改。
Dashboard 顯示大多數 Kubernetes 物件型別,並將它們分組到幾個選單類別中。
管理員概覽
對於叢集和名稱空間管理員,Dashboard 列出節點、名稱空間和 PersistentVolume,並提供它們的詳細檢視。節點列表檢視包含所有節點的 CPU 和記憶體使用指標彙總。詳細檢視顯示節點的指標、其規範、狀態、分配的資源、事件以及在該節點上執行的 Pod。
工作負載
顯示在所選名稱空間中執行的所有應用程式。該檢視按工作負載型別(例如:Deployments、ReplicaSets、StatefulSets)列出應用程式。每種工作負載型別都可以單獨檢視。列表彙總了有關工作負載的可操作資訊,例如 ReplicaSet 的就緒 Pod 數量或 Pod 的當前記憶體使用情況。
工作負載的詳細檢視顯示狀態和規範資訊,並顯示物件之間的關係。例如,ReplicaSet 控制的 Pod 或 Deployment 的新 ReplicaSet 和 HorizontalPodAutoscaler。
服務
顯示允許將服務暴露給外部世界並在叢集中發現它們的 Kubernetes 資源。因此,Service 和 Ingress 檢視顯示它們所針對的 Pod、叢集連線的內部端點和外部使用者的外部端點。
儲存
儲存檢視顯示應用程式用於儲存資料的 PersistentVolumeClaim 資源。
ConfigMaps 和 Secrets
顯示所有用於即時配置叢集中執行的應用程式的 Kubernetes 資源。該檢視允許編輯和管理配置物件,並顯示預設隱藏的 Secret。
日誌檢視器
Pod 列表和詳細資訊頁面連結到 Dashboard 中內建的日誌檢視器。該檢視器允許深入檢視屬於單個 Pod 的容器的日誌。
下一步
有關更多資訊,請參閱 Kubernetes Dashboard 專案頁面。