Kubernetes 部署和訪問Kubernetes儀表板(Dashboard)

2022-06-15 16:32 更新

部署和訪問 Kubernetes 儀表板(Dashboard)

Dashboard 是基于網(wǎng)頁的 Kubernetes 用戶界面。 你可以使用 Dashboard 將容器應(yīng)用部署到 Kubernetes 集群中,也可以對容器應(yīng)用排錯,還能管理集群資源。 你可以使用 Dashboard 獲取運行在集群中的應(yīng)用的概覽信息,也可以創(chuàng)建或者修改 Kubernetes 資源 (如 Deployment,Job,DaemonSet 等等)。 例如,你可以對 Deployment 實現(xiàn)彈性伸縮、發(fā)起滾動升級、重啟 Pod 或者使用向?qū)?chuàng)建新的應(yīng)用。

Dashboard 同時展示了 Kubernetes 集群中的資源狀態(tài)信息和所有報錯信息。


部署 Dashboard UI

默認情況下不會部署 Dashboard??梢酝ㄟ^以下命令部署:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml

訪問 Dashboard 用戶界面

為了保護你的集群數(shù)據(jù),默認情況下,Dashboard 會使用最少的 RBAC 配置進行部署。 當前,Dashboard 僅支持使用 Bearer 令牌登錄。 要為此樣本演示創(chuàng)建令牌,你可以按照 創(chuàng)建示例用戶 上的指南進行操作。

警告: 在教程中創(chuàng)建的樣本用戶將具有管理特權(quán),并且僅用于教育目的。

命令行代理 

你可以使用 ?kubectl ?命令行工具來啟用 Dashboard 訪問,命令如下:

kubectl proxy

kubectl 會使得 Dashboard 可以通過 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ 訪問。

UI 只能 通過執(zhí)行這條命令的機器進行訪問。更多選項參見 ?kubectl proxy --help?。

說明: Kubeconfig 身份驗證方法不支持外部身份提供程序或基于 x509 證書的身份驗證。

歡迎界面

當訪問空集群的 Dashboard 時,你會看到歡迎界面。 頁面包含一個指向此文檔的鏈接,以及一個用于部署第一個應(yīng)用程序的按鈕。 此外,你可以看到在默認情況下有哪些默認系統(tǒng)應(yīng)用運行在 ?kube-system? 名字空間 中,比如 Dashboard 自己。


部署容器化應(yīng)用

通過一個簡單的部署向?qū)?,你可以使?nbsp;Dashboard 將容器化應(yīng)用作為一個 Deployment 和可選的 Service 進行創(chuàng)建和部署。你可以手工指定應(yīng)用的詳細配置,或者上傳一個包含應(yīng)用配置的 YAML 或 JSON _清單_文件。

點擊任何頁面右上角的 CREATE 按鈕以開始。

指定應(yīng)用的詳細配置 

部署向?qū)枰闾峁┮韵滦畔ⅲ?/p>

  • 應(yīng)用名稱(必填):應(yīng)用的名稱。內(nèi)容為應(yīng)用名稱的 標簽 會被添加到任何將被部署的 Deployment 和 Service。
  • 在選定的 Kubernetes 名字空間 中, 應(yīng)用名稱必須唯一。必須由小寫字母開頭,以數(shù)字或者小寫字母結(jié)尾, 并且只含有小寫字母、數(shù)字和中劃線(-)。小于等于24個字符。開頭和結(jié)尾的空格會被忽略。

  • 容器鏡像(必填):公共鏡像倉庫上的 Docker 容器鏡像 或者私有鏡像倉庫 (通常是 Google Container Registry 或者 Docker Hub)的 URL。容器鏡像參數(shù)說明必須以冒號結(jié)尾。
  • Pod 的數(shù)量(必填):你希望應(yīng)用程序部署的 Pod 的數(shù)量。值必須為正整數(shù)。
  • 系統(tǒng)會創(chuàng)建一個 Deployment 以保證集群中運行期望的 Pod 數(shù)量。

  • 服務(wù)(可選):對于部分應(yīng)用(比如前端),你可能想對外暴露一個 Service ,這個 Service 可能用的是集群之外的公網(wǎng) IP 地址(外部 Service)。
  • 說明: 對于外部服務(wù),你可能需要開放一個或多個端口才行。

    其它只能對集群內(nèi)部可見的 Service 稱為內(nèi)部 Service。

    不管哪種 Service 類型,如果你選擇創(chuàng)建一個 Service,而且容器在一個端口上開啟了監(jiān)聽(入向的), 那么你需要定義兩個端口。創(chuàng)建的 Service 會把(入向的)端口映射到容器可見的目標端口。 該 Service 會把流量路由到你部署的 Pod。支持 TCP 協(xié)議和 UDP 協(xié)議。 這個 Service 的內(nèi)部 DNS 解析名就是之前你定義的應(yīng)用名稱的值。

如果需要,你可以打開 Advanced Options 部分,這里你可以定義更多設(shè)置:

  • 描述:這里你輸入的文本會作為一個 注解 添加到 Deployment,并顯示在應(yīng)用的詳細信息中。
  • 標簽:應(yīng)用默認使用的 標簽 是應(yīng)用名稱和版本。 你可以為 Deployment、Service(如果有)定義額外的標簽,比如 release(版本)、 environment(環(huán)境)、tier(層級)、partition(分區(qū)) 和 release track(版本跟蹤)。
  • 例子:

    release=1.0
    tier=frontend
    environment=pod
    track=stable
  • 名字空間:Kubernetes 支持多個虛擬集群依附于同一個物理集群。 這些虛擬集群被稱為 名字空間, 可以讓你將資源劃分為邏輯命名的組。
  • Dashboard 通過下拉菜單提供所有可用的名字空間,并允許你創(chuàng)建新的名字空間。 名字空間的名稱最長可以包含 63 個字母或數(shù)字和中橫線(-),但是不能包含大寫字母。

    名字空間的名稱不能只包含數(shù)字。如果名字被設(shè)置成一個數(shù)字,比如 10,pod 就

    在名字空間創(chuàng)建成功的情況下,默認會使用新創(chuàng)建的名字空間。如果創(chuàng)建失敗,那么第一個名字空間會被選中。

  • 鏡像拉取 Secret:如果要使用私有的 Docker 容器鏡像,需要拉取 Secret 憑證。
  • Dashboard 通過下拉菜單提供所有可用的 Secret,并允許你創(chuàng)建新的 Secret。 Secret 名稱必須遵循 DNS 域名語法,比如 ?new.image-pull.secret?。 Secret 的內(nèi)容必須是 base64 編碼的,并且在一個 ?.dockercfg? 文件中聲明。Secret 名稱最大可以包含 253 個字符。

    在鏡像拉取 Secret 創(chuàng)建成功的情況下,默認會使用新創(chuàng)建的 Secret。 如果創(chuàng)建失敗,則不會使用任何 Secret。

  • CPU 需求(核數(shù))和內(nèi)存需求(MiB):你可以為容器定義最小的 資源限制。 默認情況下,Pod 沒有 CPU 和內(nèi)存限制。
  • 運行命令和運行命令參數(shù):默認情況下,你的容器會運行 Docker 鏡像的默認 入口命令。 你可以使用 command 選項覆蓋默認值。
  • 以特權(quán)模式運行:這個設(shè)置決定了在 特權(quán)容器 中運行的進程是否像主機中使用 root 運行的進程一樣。 特權(quán)容器可以使用諸如操縱網(wǎng)絡(luò)堆棧和訪問設(shè)備的功能。
  • 環(huán)境變量:Kubernetes 通過 環(huán)境變量 暴露 Service。你可以構(gòu)建環(huán)境變量,或者將環(huán)境變量的值作為參數(shù)傳遞給你的命令。 它們可以被應(yīng)用用于查找 Service。值可以通過 ?$(VAR_NAME)? 語法關(guān)聯(lián)其他變量。

上傳 YAML 或者 JSON 文件

Kubernetes 支持聲明式配置。所有的配置都存儲在清單文件 (YAML 或者 JSON 配置文件)中。這些 清單使用 Kubernetes API 定義的資源模式。

作為一種替代在部署向?qū)е兄付☉?yīng)用詳情的方式,你可以在一個或多個清單文件中定義應(yīng)用,并且使用 Dashboard 上傳文件。

使用 Dashboard

以下各節(jié)描述了 Kubernetes Dashboard UI 視圖;包括它們提供的內(nèi)容,以及怎么使用它們。

導(dǎo)航

當在集群中定義 Kubernetes 對象時,Dashboard 會在初始視圖中顯示它們。 默認情況下只會顯示 默認 名字空間中的對象,可以通過更改導(dǎo)航欄菜單中的名字空間篩選器進行改變。

Dashboard 展示大部分 Kubernetes 對象,并將它們分組放在幾個菜單類別中。

管理概述

集群和名字空間管理的視圖, Dashboard 會列出節(jié)點、名字空間和持久卷,并且有它們的詳細視圖。 節(jié)點列表視圖包含從所有節(jié)點聚合的 CPU 和內(nèi)存使用的度量值。 詳細信息視圖顯示了一個節(jié)點的度量值,它的規(guī)格、狀態(tài)、分配的資源、事件和這個節(jié)點上運行的 Pod。

負載

顯示選中的名字空間中所有運行的應(yīng)用。 視圖按照負載類型(如 Deployment、ReplicaSet、StatefulSet 等)羅列應(yīng)用,并且每種負載都可以單獨查看。 列表總結(jié)了關(guān)于負載的可執(zhí)行信息,比如一個 ReplicaSet 的就緒狀態(tài)的 Pod 數(shù)量,或者目前一個 Pod 的內(nèi)存用量。

工作負載的詳情視圖展示了對象的狀態(tài)、詳細信息和相互關(guān)系。 例如,ReplicaSet 所控制的 Pod,或者 Deployment 所關(guān)聯(lián)的新 ReplicaSet 和 HorizontalPodAutoscalers。

服務(wù)

展示允許暴露給外網(wǎng)服務(wù)和允許集群內(nèi)部發(fā)現(xiàn)的 Kubernetes 資源。 因此,Service 和 Ingress 視圖展示他們關(guān)聯(lián)的 Pod、給集群連接使用的內(nèi)部端點和給外部用戶使用的外部端點。

存儲

存儲視圖展示持久卷申領(lǐng)(PVC)資源,這些資源被應(yīng)用程序用來存儲數(shù)據(jù)。

ConfigMap 和 Secret

展示的所有 Kubernetes 資源是在集群中運行的應(yīng)用程序的實時配置。 通過這個視圖可以編輯和管理配置對象,并顯示那些默認隱藏的 Secret。

日志查看器 

Pod 列表和詳細信息頁面可以鏈接到 Dashboard 內(nèi)置的日志查看器。 查看器可以深入查看屬于同一個 Pod 的不同容器的日志。



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號