聚焦 SIG Apps
在我們持續進行的 SIG Spotlight 系列中,我們透過與各個特別興趣小組(SIG)的負責人對話,深入瞭解 Kubernetes 專案的核心。這一次,我們聚焦於 SIG Apps,這個小組負責與在 Kubernetes 上開發、部署和運維應用程式相關的一切事務。Sandipan Panda(DevZero)有幸採訪了 SIG Apps 的主席兼技術負責人 Maciej Szulik(Defense Unicorns)和 Janet Kuo(Google)。他們分享了在 Kubernetes 生態系統中應用管理的經驗、挑戰和未來願景。
介紹
Sandipan:你好,能先簡單介紹一下你自己、你的角色,以及你在 Kubernetes 社群的經歷是如何讓你擔任 SIG Apps 當前的職務的嗎?
Maciej:大家好,我叫 Maciej,是 SIG Apps 的負責人之一。除了這個角色,你還可以在 SIG CLI 看到我,我也是指導委員會的成員之一。自 2014 年末以來,我一直在為 Kubernetes 做出貢獻,涉及控制器、apiserver 和 kubectl 等多個領域。
Janet:當然!我是 Janet,Google 的一名主任軟體工程師。自 Kubernetes 專案早期,甚至在 2015 年 1.0 版本釋出之前,我就深度參與其中。這是一段奇妙的旅程!
我目前在 Kubernetes 社群的角色是 SIG Apps 的主席和技術負責人之一。我與 SIG Apps 的緣分始於自然而然。我從構建 Deployment API 和新增滾動更新功能開始。我很自然地傾向於 SIG Apps,並越來越多地參與其中。隨著時間的推移,我承擔了更多的責任,最終擔任了目前的領導角色。
關於 SIG Apps
以下所有回答均由 Maciej 和 Janet 共同提供。
Sandipan:對於不熟悉的人,您能概述一下 SIG Apps 的使命和目標嗎?它旨在解決 Kubernetes 生態系統中的哪些關鍵問題?
正如我們的章程所述,我們涵蓋了與在 Kubernetes 上開發、部署和運維應用程式相關的廣泛領域。簡而言之,這意味著我們歡迎每一個人參加我們每兩週一次的會議,討論在 Kubernetes 上編寫和部署各種應用程式的起伏。
Sandipan:SIG Apps 目前正在進行哪些最重要的專案或倡議?
目前,推動我們控制器開發的主要因素是執行各種 AI 相關工作負載所帶來的挑戰。這裡值得稱讚的是我們過去幾年贊助的兩個工作組:
最佳實踐和挑戰
Sandipan:SIG Apps 在為 Kubernetes 制定應用程式管理最佳實踐方面發揮著至關重要的作用。您能分享一些這些最佳實踐以及它們如何幫助改善應用程式生命週期管理嗎?
實施健康檢查和就緒探針可確保您的應用程式健康並準備好提供流量,從而提高可靠性和正常執行時間。以上內容結合全面的日誌記錄、監控和追蹤解決方案,將為您提供有關應用程式行為的洞察,使您能夠快速識別和解決問題。
根據資源利用率或自定義指標自動伸縮您的應用程式,最佳化資源使用,並確保您的應用程式可以處理不同的負載。
對無狀態應用程式使用 Deployment,對有狀態應用程式使用 StatefulSet,對批處理工作負載使用 Job 和 CronJob,對在每個節點上執行守護程序使用 DaemonSet。使用 Operator 和 CRD 來擴充套件 Kubernetes API,以自動化複雜應用程式的部署、管理和生命週期,使其更易於運維並減少手動干預。
Sandipan:SIG Apps 面臨哪些常見的挑戰,你們是如何應對的?
我們一直面臨的最大挑戰是需要拒絕許多功能、想法和改進。這需要極大的紀律和耐心,才能解釋這些決定背後的原因。
Sandipan:Kubernetes 的演進如何影響了 SIG Apps 的工作?Kubernetes 中是否有任何最近的變化或即將推出的功能,您認為對 SIG Apps 特別相關或有益?
對我們和整個 SIG Apps 社群來說,最大的好處是能夠使用自定義資源定義來擴充套件 Kubernetes,以及使用者可以構建自己的自定義控制器,利用內建控制器來實現他們可能擁有的任何複雜用例,而我們作為核心維護者沒有考慮過或無法在 Kubernetes 內部有效解決。
為 SIG Apps 做貢獻
Sandipan:對於想參與 SIG Apps 的新貢獻者,有哪些機會?您會給他們什麼建議?
我們經常被問到:“你們有什麼好的入門問題可以推薦我們開始嗎?” :-) 但不幸的是,這個問題沒有簡單的答案。我們總是告訴大家,開始為核心控制器做貢獻的最佳選擇是找一個你願意花時間研究的。通讀程式碼,然後嘗試執行專注於該控制器的單元測試和整合測試。一旦你掌握了大概的思路,就嘗試破壞它和測試,再次驗證你的破壞。當你開始對自己理解那個特定控制器有信心時,你可能想搜尋影響該控制器的未解決問題,要麼提供建議,解釋使用者遇到的問題,要麼嘗試你的第一個修復。
就像我們說的,這條路上沒有捷徑;你需要花時間研究程式碼庫,以理解我們逐步構建起來的所有邊緣情況,才能達到我們現在的水平。一旦你在一個控制器上取得成功,你需要與其他控制器重複同樣的過程。
Sandipan:SIG Apps 如何從社群收集反饋,這些反饋又是如何整合到你們的工作中的?
我們總是鼓勵大家在我們每兩週一次的會議上展示他們的問題和解決方案。只要你在 Kubernetes 上解決一個有趣的問題,並且能提供關於任何核心控制器的寶貴反饋,我們總是樂於傾聽。
展望未來
Sandipan:展望未來,SIG Apps 對 Kubernetes 中應用程式管理的關鍵關注領域或即將到來的趨勢有哪些感到興奮?SIG 是如何適應這些趨勢的?
當前的人工智慧熱潮無疑是主要驅動因素;如上所述,我們有兩個工作組,每個工作組都覆蓋了它的一個不同方面。
Sandipan:關於這個 SIG,你最喜歡的事情是什麼?
毫無疑問,是那些參加我們會議和在 Slack 上的人們,他們不懈地幫助分類問題、拉取請求,並投入大量時間(通常是他們的私人時間)來使 Kubernetes 變得偉大!
SIG Apps 是 Kubernetes 社群的重要組成部分,幫助塑造了應用程式如何大規模部署和管理。從改進 Kubernetes 的工作負載 API 到推動 AI/ML 應用程式管理的創新,SIG Apps 正在不斷適應現代應用程式開發人員和運維人員的需求。無論您是新貢獻者還是經驗豐富的開發人員,總有機會參與進來併產生影響。
如果您有興趣瞭解更多資訊或為 SIG Apps 做出貢獻,請務必檢視他們的 SIG README 並參加他們每兩週一次的會議。