TKE 體驗升級:更快上手 K8s 的24個小技巧

騰訊雲原生發表於2021-06-25

作者

王孝威,騰訊雲容器產品經理,熱衷於為客戶提供高效的 Kubernetes 使用方式,為客戶極致降本增效服務。

背景

“功能“解決是產品有或者沒有一個能力的問題,有了“功能”之後,如何通過良好的引導、提示,以及互動來幫助使用者更“流暢”的使用產品是一個值得思考的問題。

例如:樂高已經有了超過 3700 種不同的模組,這些模組可以拼出無限種模型。然而,不同模型的呈現完全不一樣,有可能只是幾個小模組的位置的改變就能帶來意想不到的效果。

進過幾年的努力,TKE 在功能層面提出了大量新特性:例如:通過 LB 直連 Pod 提升效能叢集原地升級虛擬節點動態排程器,更多可參考容器服務產品動態

此外,TKE 也重視使用者的整體使用體驗,為此拜訪了多家公司,收集了很多需求,並根據使用者重視分層,進行了優化和工具的開發,使用者可以利用這些優化的小技巧,更順滑的來體驗容器服務,更“接地氣”的降低產品使用門檻,提升產品使用體驗。

提升列表

叢集/節點相關

推薦:節點搜尋能力增強

節點搜尋支援通過 Label/IP/是否封鎖/節點狀態 等多維度的搜尋。

  • Label 搜尋格式與原生 Kubernetes 相同:"k1=v1,k2=v2"
  • IP 多值搜尋時僅支援精確查詢,單 IP 搜尋支援模糊查詢

使用方式:節點管理 -> 節點 -> 搜尋 或者 節點池詳情頁 -> 下拉到節點列表 -> 搜尋

推薦:節點初始化錯誤展示優化

  • 【CVM 發貨失敗 相關錯誤細化展示】如果因為 CVM 發貨失敗導致節點購買失敗,除了報 LAUNCH_FAILED(即發貨失敗), 還會顯示詳細發貨失敗的原因:比如 VPC 子網 IP 不足/磁碟資源不足/餘額不足/置放群組配額不足等等。

  • 【節點初始化 相關錯誤細化展示】會詳細在節點列表展示節點初始化失敗的步驟以及對應資訊:比如掛盤失敗、核心元件異常等等。

使用方式:節點管理 -> 節點 -> 在狀態列點選檢視狀態即可檢視錯誤

節點池節點操作標準化:支援封鎖/驅逐

節點池內節點操作支援封鎖/驅逐,已與叢集內節點列表操作保持完全同步,您可以在節點池內高效管理節點。

使用方式:節點池詳情頁 -> 下拉到節點列表 -> 在操作列對單節點進行操作 或者 選中批量節點後進行批量操作(點選上方【更多操作】按鈕可批量封鎖/取消封鎖節點)

刪除保護邏輯優化

客戶反映:如果建立叢集時開啟了誤刪選項,開啟後假如建立失敗,客戶也無法刪除。

現在您可以在【叢集列表頁】為叢集關閉刪除保護功能。

使用方式:叢集管理 -> 叢集操作列表 -> 更多 -> 關閉叢集刪除保護

公網 IP 展示優化

有些客戶反饋公網IP的配置入口過於隱蔽,預設頻寬值過小,無法滿足業務需要。

我們採取圖形化的形式(拖動條)來代替輸入框,強化顯示效果。

?? 使用方式:新建節點/新建節點池 -> 選擇機型 -> 拖拽到底部 -> 設定公網頻寬

節點池展示資訊結構化 / 高階引數展示

  1. 增加節點池核心定義/功能的概覽,讓客戶快速瞭解節點池的使用場景

  1. 節點池資訊結構化展示(按模組聚合展示,同時顯示了更多的高階引數,提高了可觀測性)
    • 節點池基本資訊(彈性伸縮相關配置、節點數量等資訊)
    • 節點配置詳情(節點模板相關配置、節點池擴容節點自動繼承的配置)

節點直接跳轉 CVM 優化

舊版本的跳轉 CVM 按鈕顯示不穩定,並且入口不突出。

使用方式:滑鼠懸浮到節點 ID 處(如果您直接點選節點 ID, 會跳轉到 Node 詳情頁) -> 點選 “跳轉到 CVM 例項詳情頁” -> 會跳轉到 CVM 例項詳情頁

建立節點時增加了容器網路 IP 校驗

建立節點前,會根據您的容器網路配置(網路模式、網段等)來判斷容器網路是否可以滿足這批節點建立的要求。考慮到某些特殊場景下您可能不需要校驗容器網路,我們提供了引數skip可以供您跳過校驗。(引數的詳細說明可參考API文件

使用方式:新建節點/新增已有節點/新建節點池 -> 更多設定 -> 設定skip引數

叢集新增已有節點時支援填寫掛載分割槽/LVM 名

在新增已有節點時如果您對磁碟做了分割槽/LVM,請在掛載分割槽填寫想要掛載的分割槽名/LVM名,如果磁碟未分割槽或 LVM,無需填寫掛載分割槽,只需填寫掛載點

使用方式:新增已有節點 -> 選擇節點 -> 勾選資料盤掛載 -> 填寫掛載分割槽以及掛載點

Kubernetes 物件相關

推薦:批量匯入鍵值對:配置管理 & 環境變數優化

支援一次性從剪下板匯入批量的鍵值對。變數名為空時,在變數名稱中貼上一行或多行 key=value 或 key: value 的鍵值對可以實現快速批量輸入。

使用方式1:工作負載 -> 新建負載 -> 例項內容器 -> 環境變數

使用方式2:配置管理 -> 新建ConfigMap/Secret -> 內容

推薦:CronJob 支援保留數量/暫停/手動觸發/顯示由 Cronjob 生成的 Job 列表

  • 保留成功Job數:防止Job無限生成,影響叢集效能

  • 保留失敗Job數:防止Job無限生成,影響叢集效能

  • 暫停:會停止 Cronjob 的執行,不再會生成新的 Job。支援恢復執行

  • 手動觸發:無需等到 Cronjob 設定的 Crontab 時間就支援利用 Cronjob 裡的 Job 模板生成一個新的 Job

使用方式:工作負載 -> Cronjob -> 新建 -> 保留成功Job數/保留失敗Job數

使用方式:工作負載 -> Cronjob 列表 -> 更多-> 手動觸發/暫停

點選上圖中的 CronJob 的名稱,就可以檢視到由 CronJob 生成的執行中的 Job 列表:

HostAliases 產品化

HostAliases 用於為 Pod 的 /etc/hosts 檔案中新增條目,可以在 Pod 級別覆蓋對主機名的解析。以增加 Pod 的 DNS 配置。

使用方式:工作負載 -> 新建負載 -> 高階設定 -> 主機別名

lifecycle 產品化

lifecycle : 容器的生命週期事件掛接處理函式。 容器可以為每個事件指定一個處理程式,當一個容器啟動後,Kubernetes 將立即傳送 postStart 事件;在容器被終結之前, Kubernetes 將傳送一個 preStop 事件。

使用方式:工作負載 -> 新建負載 -> 例項內容器 -> 生命週期

Service 預設 “僅在叢集內訪問”;Service 型別解釋增加對應英文名詞

  1. “僅在叢集內訪問”訪問方式符合使用習慣
  2. 中英文名詞對照減少使用者的理解成本,符合 Kubernetes 原生使用習慣

一鍵“重新部署” 在 Deployment、StatefulSet 和 DaemonSet 上支援

和 Deployment 一樣,StatefulSet 和 DaemonSet 現在支援一鍵重新部署了,免去刪除後重新配置的煩惱。

使用方式:工作負載 -> 負載列表 -> 更多 -> 重新部署

Ingress 證照支援繼承 LB 的證照

支援直接使用 CLB 的證照自動建立 Ingress 的 HTTPS 證照,省去繁瑣的 Secret 建立流程。

使用方式:服務與路由 -> Ingress -> 新建Ingress -> 監聽埠勾選Https:443 -> 新建金鑰 -> 選擇伺服器證照

Secret 支援 TLS 型別

除了 CLB 證照,您有時會使用自己的證照,儲存證照需要使用 TLS 型別的 Secret

使用方式1:配置管理 -> Secret -> 新建Secret -> TLS證照

使用方式2:服務與路由 -> Ingress -> 新建Ingress -> Nginx負載均衡器 -> 監聽埠勾選Https:443 -> 新建金鑰

subPathExpr 在控制檯上支援配置

subPathExpr,支援將環境變數對映到 Volume 裡的一個子路徑

使用方式:新建負載 -> 使用資料卷 -> 增加環境變數 -> 使用掛載點 -> 選擇 subPathExpr

kube-system、kube-node-lease、kube-public 裡的資源支援在控制檯支援修改

以前為了防止使用者誤觸,在控制檯限制了這些名稱空間裡資源的修改,但事實上有些使用者本身就具有這些名稱空間的資源管理許可權,因此新版本在控制檯去掉了這些限制,許可權邏輯交給後臺判斷,若您沒有相關名稱空間的許可權,修改資源也會報錯。

使用方式:新建負載 -> 選擇名稱空間 -> 修改資源配置

使用方式:授權管理 -> 選擇任意一個入口 -> RBAC策略生成器 -> 選擇子賬號 -> 選擇名稱空間/許可權

增加多處懸浮提示

所有的資源列表頁的欄位名增加懸浮提示,更適應螢幕較小的使用者

工作負載裡的日誌入口容器名增加懸浮提示,更適應螢幕較小的使用者

運維能力相關

推薦:日誌採集支援根據日誌樣例自動提取正規表示式

當在日誌採集規則中選擇單行完全正則、多行完全正則的提取模式時,可根據使用者自己的日誌樣例自動生成正規表示式,並自動提取相應的鍵值對,無需使用者自己去學習並配置正規表示式

使用方式:1.叢集運維 -> 2.日誌規則 -> 3.新建 -> 4.輸入日誌採集規則名字 -> 5.提取方式選取“單行-完全正則” -> 6.輸入日誌樣例 -> 7.點選正規表示式自動生成 -> 8.移動游標選取需要被正則的字串 -> 9.輸入key -> 10.確認

推薦:日誌採集支援根據日誌樣例自動驗證是否可正常提取日誌

對於使用者自己填寫的正規表示式、分隔符等,支援按照使用者日誌樣例進行驗證,自動提取所有value,以驗證是否可以正常解析日誌,避免在檢索日誌時發現表示式配置錯誤。

使用方式:1.叢集運維 -> 2.日誌規則 -> 3.新建 -> 4.輸入日誌採集規則名字 -> 5.提取方式選取“單行-完全正則” -> 6.輸入日誌樣例 -> 7.手動輸入正規表示式 -> 8. 驗證

日誌採集支援多行正則提取模式

支援多行正則的解析模式(適用於java程式等多行日誌以鍵值對去檢索日誌的需求)

注意:使用多行正則提取模式需要聯絡後端升級採集元件版本

使用方式:新建日誌採集規則->第二步提取模式中選擇“多行-完全正則模式”

託管 Prometheus 支援新加坡、弗吉尼亞等地域

雲原生監控(託管 Prometheus)灰度上線新加坡/弗吉尼亞等地域,歡迎使用。

總結

Kubernetes 本身功能強大,但模組複雜,上手成本較高,TKE 致力於功能和體驗的升級,如果您有任何

相關文章