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

2022-06-15 16:32 更新

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

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

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


部署 Dashboard UI

默認(rèn)情況下不會(huì)部署 Dashboard??梢酝ㄟ^以下命令部署:

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

訪問 Dashboard 用戶界面

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

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

命令行代理 

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

kubectl proxy

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

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

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

歡迎界面

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


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

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

點(diǎn)擊任何頁面右上角的 CREATE 按鈕以開始。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • CPU 需求(核數(shù))和內(nèi)存需求(MiB):你可以為容器定義最小的 資源限制。 默認(rèn)情況下,Pod 沒有 CPU 和內(nèi)存限制。
  • 運(yùn)行命令和運(yùn)行命令參數(shù):默認(rèn)情況下,你的容器會(huì)運(yùn)行 Docker 鏡像的默認(rèn) 入口命令。 你可以使用 command 選項(xiàng)覆蓋默認(rèn)值。
  • 以特權(quán)模式運(yùn)行:這個(gè)設(shè)置決定了在 特權(quán)容器 中運(yùn)行的進(jìn)程是否像主機(jī)中使用 root 運(yùn)行的進(jìn)程一樣。 特權(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 支持聲明式配置。所有的配置都存儲(chǔ)在清單文件 (YAML 或者 JSON 配置文件)中。這些 清單使用 Kubernetes API 定義的資源模式。

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

使用 Dashboard

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

導(dǎo)航

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

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

管理概述

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

負(fù)載

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

工作負(fù)載的詳情視圖展示了對(duì)象的狀態(tài)、詳細(xì)信息和相互關(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)部端點(diǎn)和給外部用戶使用的外部端點(diǎn)。

存儲(chǔ)

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

ConfigMap 和 Secret

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

日志查看器 

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



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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)