本文發表於一年多前。舊文章可能包含過時內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
聚焦 SIG CLI
在 Kubernetes 的世界裡,大規模管理容器化應用需要強大而高效的工具。命令列介面(CLI)是任何開發者或運維人員工具包中不可或缺的一部分,它提供了一種方便、靈活的方式來與 Kubernetes 叢集進行互動。
SIG CLI 在改善 Kubernetes CLI 體驗方面扮演著至關重要的角色,專注於開發和增強 kubectl
這個主要的 Kubernetes 命令列工具。
在本次 SIG CLI 聚焦中,SIG ContribEx-Comms 團隊成員 Arpit Agrawal 與 SIG CLI 技術負責人兼主席 Katrina Verey 以及 SIG CLI Batch 負責人 Maciej Szulik 進行了交談,討論了 SIG CLI、當前專案、挑戰以及任何人如何參與其中。
因此,無論你是經驗豐富的 Kubernetes 愛好者還是剛剛入門,瞭解 SIG CLI 的重要性無疑會提升你的 Kubernetes 之旅。
介紹
Arpit: 你能簡單介紹一下自己、你的角色以及你是如何參與到 SIG CLI 中的嗎?
Maciej: 我是 SIG-CLI 的技術負責人之一。自 2014 年以來,我一直在多個領域從事 Kubernetes 的工作,並於 2018 年被任命為負責人。
Katrina: 我從 2016 年開始以終端使用者的身份使用 Kubernetes,但直到 2019 年底,我才發現 SIG CLI 與我在內部專案中的經驗非常契合。我開始定期參加會議並提交了一些小的 PR,到 2021 年,我已經更深入地與 Kustomize 團隊合作。同年晚些時候,我被任命為 Kustomize 和 KRM Functions 的子專案負責人,以及 SIG CLI 技術負責人和主席。
關於 SIG CLI
Arpit: 謝謝!你能和我們分享一下 SIG CLI 的宗旨和目標嗎?
Maciej: 我們的章程有最詳細的描述,但簡單來說,我們處理所有幫助你管理 Kubernetes 清單和與 Kubernetes 叢集互動的 CLI 工具。
Arpit: 我明白了。那麼 SIG CLI 是如何致力於在雲原生生態系統中推廣 CLI 開發和使用的最佳實踐的呢?
Maciej: 在 kubectl
內部,我們有幾項正在進行的工作,試圖鼓勵新貢獻者將現有命令與新標準對齊。我們釋出了幾個庫,希望它們能讓編寫與 Kubernetes API 互動的 CLI 變得更容易,例如 cli-runtime 和 kyaml。
Katrina: 我們還為 CLI 工具維護一些互操作性規範,例如 KRM 函式規範(GA)和新的 ApplySet 規範(alpha)。
當前專案和挑戰
Arpit: 瀏覽 README 檔案可以發現,SIG CLI 有很多子專案,你能重點介紹一些重要的專案嗎?
Maciej: 在我看來,最活躍且值得你投入時間的四個子專案是:
kubectl
: 權威的 Kubernetes CLI。- Kustomize: 一個用於 Kubernetes YAML 清單檔案的無模板定製工具。
- KUI - 一個 Kubernetes 的 GUI 介面,可以看作是
kubectl
的加強版。 krew
:kubectl
的一個外掛管理器。
Arpit: SIG CLI 是否有任何即將推出的計劃或正在進行的開發工作?
Maciej: 在任何時候,我們總是有幾個計劃在進行中。最好是參加我們的一次會議來了解當前的計劃。
Katrina: 對於主要功能,你可以檢視我們開放的 KEP。例如,在 1.27 版本中,我們為 kubectl apply 中的新修剪模式和 kubectl create 外掛引入了 alpha 版本。目前正在討論的激動人心的想法包括 kubectl
delete 的互動模式(KEP 3895)和 kuberc
使用者首選項檔案(KEP 3104)。
Arpit: 你能否談談 SIG CLI 在改進雲原生技術的 CLI 方面面臨的挑戰?未來將採取哪些措施來解決這些問題?
Katrina: 我們在做每個決定時面臨的最大挑戰是向後相容性,確保我們不會破壞現有使用者。經常發生的情況是,修復表面上的問題可能看起來很簡單,但即使是修復一個 bug 也可能對某些使用者構成重大變更,這意味著我們需要透過一個漫長的棄用過程來改變它,或者在某些情況下我們根本無法改變它。另一個挑戰是需要在我們工具中公開的標誌集中平衡定製化和可用性。例如,我們收到了很多關於新標誌的提議,這些標誌對某些使用者肯定有用,但不足以證明在工具中增加它們的複雜性對每個人都是合理的。kuberc
提案可能有助於解決其中一些問題,它允許個人使用者設定或覆蓋我們無法更改的預設值,甚至透過別名建立自定義子命令。
Arpit: 隨著 Kubernetes 每個新版本的釋出,保持一致性和完整性肯定是一個挑戰:SIG CLI 團隊是如何應對的?
Maciej: 這與上一個問題中提到的話題非常相似:每一個新的變更,特別是對現有命令的變更,都會經過大量的審查,以確保我們不會破壞現有使用者。在任何時候,我們都必須在功能和不破壞使用者之間保持合理的平衡。
未來計劃和貢獻
Arpit: 你如何看待 CLI 工具在未來雲原生生態系統中的角色演變?
Maciej: 我認為 CLI 工具過去是、將來也永遠是生態系統中重要的一部分。無論是由管理員在沒有 GUI 的遠端機器上使用,還是在每個 CI/CD 管道中使用,它們都是不可替代的。
Arpit: Kubernetes 是一個社群驅動的專案。對於任何想要參與 SIG CLI 工作的人,你有什麼建議嗎?他們應該從哪裡開始?有什麼先決條件嗎?
Maciej: 除了手上有一點空閒時間和願意學習新東西之外,沒有其他先決條件 :-)
Katrina: 具備 Go 的實踐知識通常會有所幫助,但我們也有需要非程式碼貢獻的領域,比如 Kustomize 文件整合專案。