本文章已超過一年。較舊的文章可能包含過時的內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
每次以一個 KEP 增強 Kubernetes
您知道 Kubernetes v1.24 有 46 項增強功能 嗎?在 4 個月的發布週期中,這包含了大量的新功能。Kubernetes 發布團隊協調發布的後勤工作,從修復測試不穩定性到發布更新的文件。這是一項繁重的工作,但他們總是能交付成果。
發布團隊由約 30 人組成,分為六個子團隊 - 錯誤分類、CI 信號、增強功能、發布說明、溝通和文件。 每個子團隊管理發布的一個組件。這篇文章將重點介紹增強功能子團隊的角色以及您如何參與。
什麼是增強功能子團隊?
好問題。我們稍後會談到這個,但首先,讓我們談談在 Kubernetes 中如何管理功能。
每個新功能都需要一份 Kubernetes 增強提案 - 簡稱 KEP。KEP 是小型結構化設計文件,提供一種提案和協調新功能的方式。KEP 作者描述動機、設計(和替代方案)、風險和測試 - 然後社群成員提供回饋以建立共識。
KEP 通過在 k/enhancements repo 上的提取請求 (PR) 工作流程提交和更新。功能從 alpha 開始,並隨著它們的成熟,通過畢業流程移動到 beta 和 stable。例如,這是一個關於 Windows Server 上特權容器支援 的酷 KEP。 它在 Kubernetes v1.22 中作為 alpha 引入,並在 v1.23 中畢業為 beta。
現在回到問題 - 增強功能子團隊協調每次發布的 KEP 的生命週期追蹤。每個 KEP 都需要滿足一組要求才能被批准包含在發布中。增強功能子團隊驗證每個 KEP 的每個要求並追蹤狀態。
在發布開始時,Kubernetes 特殊興趣小組 (SIG) 提交他們的增強功能以選擇加入發布。典型的發布在開始時可能有 60 到 90 個增強功能。 在發布期間,許多增強功能會退出。有些不太符合 KEP 要求,另一些則未完成其程式碼中的實作。大約 60%-70% 的選擇加入的 KEP 將進入最終版本。
增強功能子團隊做什麼?
又一個好問題,繼續提問!增強功能團隊參與每次發布期間的兩個關鍵里程碑:增強功能凍結和程式碼凍結。
增強功能凍結
增強功能凍結是 KEP 完成的截止日期,以便將增強功能包含在發布中。它是一個品質閘門,用於強制執行圍繞維護和更新 KEP 的一致性。最值得注意的要求是 (1) 生產就緒審查 (PRR) 和 (2) 具有完整測試計劃和畢業標準的 KEP 檔案。
增強功能子團隊通過 Github 上 KEP 問題上的評論與每位 KEP 作者溝通。作為第一步,他們將驗證狀態並檢查是否符合要求。 KEP 在滿足要求後被標記為已追蹤;否則,它被認為有風險。如果 KEP 在增強功能凍結生效時仍然有風險,則 KEP 將從發布中移除。
週期的這部分通常是增強功能子團隊最忙碌的,因為有大量 KEP 需要整理,並且每個 KEP 可能需要多次訪問以驗證它是否符合要求。
程式碼凍結
程式碼凍結是所有增強功能的實作截止日期。如果增強功能需要程式碼變更或更新,則程式碼必須在此時完成實作、審查和合併。發布的後三分之一重點是穩定程式碼庫 - 修復不穩定的測試、解決各種回歸問題和準備文件 - 並且所有程式碼都需要到位,然後才能執行這些步驟。
增強功能子團隊驗證增強功能的所有 PR 都已合併到 Kubernetes 程式碼庫 (k/k) 中。在此期間,子團隊聯繫 KEP 作者以了解哪些 PR 是 KEP 的一部分,驗證這些 PR 是否已合併,然後更新 KEP 的狀態。如果程式碼在程式碼凍結截止日期之前未全部合併,則增強功能將從發布中移除。
我如何參與發布團隊?
很高興您問了這個問題。最直接的方式是申請成為 發布團隊見習成員。見習成員的角色是一種實務操作的學徒制,旨在為個人在發布團隊中擔任領導職位做好準備。許多見習成員的角色是非技術性的,不需要先前對 Kubernetes 程式碼庫的貢獻。
每年有 3 個 Kubernetes 版本發布,每個版本大約有 25 個見習成員,發布團隊總是需要願意貢獻的人。在每個發布週期之前,發布團隊都會開放見習計劃的申請。當申請上線時,它會發布在 Kubernetes 開發郵件列表 中。 您可以訂閱該列表的通知(或定期查看!)以關注申請何時開放。公告通常會在四月中旬、七月中旬和十二月中旬發布 - 或大約在每次發布開始前一個月。
我如何了解更多資訊?
如果您對所有 Kubernetes 發布子團隊的具體細節感到好奇,請查看 角色手冊。手冊捕捉了每個子團隊的後勤工作,包括子團隊活動的每週細分。 它是更好地了解每個團隊的絕佳參考資料。
您還可以查看與發布相關的 Kubernetes Slack 頻道 - 特別是 #release、#sig-release 和 #sig-arch。這些頻道有關於發布的許多方面的討論和更新。