部署和存取 Kubernetes 儀表板
儀表板是一個基於 Web 的 Kubernetes 使用者介面。您可以使用儀表板將容器化應用程式部署到 Kubernetes 叢集、疑難排解您的容器化應用程式,以及管理叢集資源。您可以使用儀表板來取得叢集上執行之應用程式的概觀,以及建立或修改個別 Kubernetes 資源 (例如部署、工作、DaemonSet 等)。例如,您可以擴充部署、啟動滾動更新、重新啟動 Pod 或使用部署精靈部署新的應用程式。
儀表板也提供有關叢集中 Kubernetes 資源狀態以及可能發生的任何錯誤的資訊。
部署儀表板 UI
注意
Kubernetes 儀表板目前僅支援基於 Helm 的安裝,因為它速度更快,並且讓我們可以更好地控制儀表板執行所需的所有依賴項。儀表板 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
存取儀表板 UI
為了保護您的叢集資料,儀表板預設以最小 RBAC 組態部署。目前,儀表板僅支援使用 Bearer 權杖登入。若要為此示範建立權杖,您可以遵循我們的指南,瞭解如何建立範例使用者。
警告
教學課程中建立的範例使用者將具有管理員權限,僅供教育目的使用。命令列 Proxy
您可以使用 kubectl
命令列工具啟用對儀表板的存取,方法是執行以下指令
kubectl proxy
Kubectl 將在 https://127.0.0.1:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ 提供儀表板。
UI 只能從執行指令的機器存取。請參閱 kubectl proxy --help
以取得更多選項。
注意
kubeconfig 驗證方法不支援外部身分提供者或基於 X.509 憑證的驗證。歡迎檢視
當您在空的叢集上存取儀表板時,您會看到歡迎頁面。此頁面包含此文件的連結,以及部署您的第一個應用程式的按鈕。此外,您可以檢視預設在叢集的 kube-system
命名空間 中執行的系統應用程式,例如儀表板本身。
部署容器化應用程式
儀表板讓您可以使用簡單的精靈建立和部署容器化的應用程式,作為部署 (Deployment) 和選用的服務 (Service)。您可以手動指定應用程式詳細資訊,或上傳包含應用程式組態的 YAML 或 JSON *資訊清單* 檔案。
點擊任何頁面右上角的 建立 (CREATE) 按鈕以開始。
指定應用程式詳細資訊
部署精靈預期您提供以下資訊
應用程式名稱 (App name) (必填):您的應用程式的名稱。名稱 標籤 (label) 將會新增至將部署的部署 (Deployment) 和服務 (Service) (如果有的話)。
應用程式名稱在選定的 Kubernetes 命名空間 中必須是唯一的。它必須以小寫字元開頭,並以小寫字元或數字結尾,且僅包含小寫字母、數字和破折號 (-)。長度限制為 24 個字元。開頭和結尾的空格會被忽略。
容器映像 (Container image) (必填):任何登錄檔上的公開 Docker 容器映像 的 URL,或是私有映像 (通常託管在 Google Container Registry 或 Docker Hub 上)。容器映像規格必須以冒號結尾。
Pod 數量 (Number of pods) (必填):您希望應用程式部署在其中的目標 Pod 數量。該值必須為正整數。
將會建立 部署 (Deployment) 以在您的叢集中維護所需的 Pod 數量。
服務 (Service) (選用):對於應用程式的某些部分 (例如前端),您可能希望將 服務 (Service) 公開到叢集外部的外部 (可能是公用) IP 位址 (外部服務)。
注意
對於外部服務,您可能需要開啟一個或多個埠來執行此操作。僅從叢集內部可見的其他服務稱為內部服務。
無論服務類型為何,如果您選擇建立服務且您的容器監聽埠 (傳入),則需要指定兩個埠。服務將會建立從埠 (傳入) 到容器可見的目標埠的映射。此服務將路由到您部署的 Pod。支援的協定為 TCP 和 UDP。此服務的內部 DNS 名稱將會是您在上面指定的應用程式名稱值。
如果需要,您可以展開 進階選項 (Advanced options) 區段,您可以在其中指定更多設定
描述 (Description):您在此處輸入的文字將會作為 註解 (annotation) 新增至部署 (Deployment) 中,並顯示在應用程式的詳細資訊中。
標籤 (Labels):用於您的應用程式的預設 標籤 (label) 為應用程式名稱和版本。您可以指定要套用至部署 (Deployment)、服務 (Service) (如果有的話) 和 Pod 的其他標籤,例如發行版本、環境、層級、分割區和發行追蹤。
範例
release=1.0 tier=frontend environment=pod track=stable
命名空間 (Namespace):Kubernetes 支援由相同實體叢集支援的多個虛擬叢集。這些虛擬叢集稱為 命名空間 (namespaces)。它們讓您可以將資源劃分為邏輯命名的群組。
儀表板在下拉式清單中提供所有可用的命名空間,並允許您建立新的命名空間。命名空間名稱最多可以包含 63 個字母數字字元和破折號 (-),但不能包含大寫字母。命名空間名稱不應僅由數字組成。如果名稱設定為數字,例如 10,則 Pod 將會放入預設命名空間中。
如果命名空間建立成功,則預設會選取它。如果建立失敗,則會選取第一個命名空間。
映像拉取密鑰 (Image Pull Secret):如果指定的 Docker 容器映像是私有的,則可能需要 拉取密鑰 (pull secret) 憑證。
儀表板在下拉式清單中提供所有可用的密鑰,並允許您建立新的密鑰。密鑰名稱必須遵循 DNS 網域名稱語法,例如
new.image-pull.secret
。密鑰的內容必須經過 base64 編碼,並在.dockercfg
檔案中指定。密鑰名稱最多可以包含 253 個字元。如果映像拉取密鑰建立成功,則預設會選取它。如果建立失敗,則不會套用任何密鑰。
CPU 需求 (核心) (CPU requirement (cores)) 和 記憶體需求 (MiB) (Memory requirement (MiB)):您可以指定容器的最小 資源限制 (resource limits)。預設情況下,Pod 以不受限制的 CPU 和記憶體限制執行。
執行命令 (Run command) 和 執行命令引數 (Run command arguments):預設情況下,您的容器執行指定的 Docker 映像的預設 進入點命令 (entrypoint command)。您可以使用命令選項和引數來覆寫預設值。
以特權模式執行 (Run as privileged):此設定決定 特權容器 中的程序是否等同於在主機上以 root 身分執行的程序。特權容器可以使用諸如操縱網路堆疊和存取裝置等功能。
環境變數 (Environment variables):Kubernetes 透過 環境變數 公開服務。您可以使用環境變數的值來組成環境變數或將引數傳遞給您的命令。它們可以用於應用程式中以尋找服務。值可以使用
$(VAR_NAME)
語法參考其他變數。
上傳 YAML 或 JSON 檔案
Kubernetes 支援宣告式組態。在此樣式中,所有組態都儲存在資訊清單 (YAML 或 JSON 組態檔案) 中。資訊清單使用 Kubernetes API 資源結構描述。
作為在部署精靈中指定應用程式詳細資訊的替代方案,您可以在一個或多個資訊清單中定義您的應用程式,並使用儀表板上傳檔案。
使用儀表板
以下章節描述 Kubernetes 儀表板 UI 的檢視畫面;它們提供什麼以及如何使用它們。
導覽 (Navigation)
當叢集中定義了 Kubernetes 物件時,儀表板會在初始檢視畫面中顯示它們。預設情況下,僅顯示來自 *default* 命名空間的物件,並且可以使用位於導覽選單中的命名空間選取器來變更此設定。
儀表板顯示大多數 Kubernetes 物件種類,並將它們分組到幾個選單類別中。
管理員總覽 (Admin overview)
對於叢集和命名空間管理員,儀表板列出節點 (Nodes)、命名空間 (Namespaces) 和持久卷 (PersistentVolumes),並具有它們的詳細檢視畫面。節點列表檢視畫面包含跨所有節點匯總的 CPU 和記憶體使用率指標。詳細資訊檢視畫面顯示節點的指標、其規格、狀態、已配置資源、事件和在節點上執行的 Pod。
工作負載
顯示在選定命名空間中執行的所有應用程式。檢視畫面依工作負載種類 (例如:部署 (Deployments)、副本集 (ReplicaSets)、狀態型集合 (StatefulSets)) 列出應用程式。每個工作負載種類都可以單獨檢視。列表摘要了有關工作負載的可操作資訊,例如副本集的就緒 Pod 數量或 Pod 的目前記憶體使用率。
工作負載的詳細資訊檢視畫面顯示狀態和規格資訊,以及物件之間的關聯性。例如,副本集正在控制的 Pod 或部署 (Deployments) 的新副本集 (ReplicaSets) 和水平 Pod 自動擴展器 (HorizontalPodAutoscalers)。
服務
顯示允許將服務公開到外部世界並在叢集內發現它們的 Kubernetes 資源。因此,服務 (Service) 和 Ingress 檢視畫面顯示它們所針對的 Pod、叢集連線的內部端點以及外部使用者的外部端點。
儲存
儲存檢視畫面顯示應用程式用於儲存資料的持久卷宣告 (PersistentVolumeClaim) 資源。
ConfigMap 和密鑰 (Secrets)
顯示用於叢集中執行應用程式的即時組態的所有 Kubernetes 資源。檢視畫面允許編輯和管理組態物件,並顯示預設隱藏的密鑰。
日誌檢視器 (Logs viewer)
Pod 列表和詳細資訊頁面連結到內建於儀表板中的日誌檢視器。檢視器允許向下鑽取屬於單一 Pod 的容器的日誌。
下一步 (What's next)
如需更多資訊,請參閱 Kubernetes 儀表板專案頁面。