聚焦日本的 Kubernetes 上游培訓

我們是 日本 Kubernetes 上游訓練的組織者。我們的團隊由積極貢獻 Kubernetes 的成員組成,包括擔任成員、審閱者、核准者和主席等職位的人員。

我們的目標是增加 Kubernetes 貢獻者的數量,並促進社群的成長。雖然 Kubernetes 社群友善且協作性高,但新手可能會覺得貢獻的第一步有點挑戰。我們的訓練計畫旨在降低門檻,並創造一個即使是初學者也能順利參與的環境。

什麼是日本 Kubernetes 上游訓練?

Upstream Training in 2022

我們的訓練始於 2019 年,每年舉辦 1 到 2 次。最初,Kubernetes 上游訓練是作為 KubeCon(Kubernetes 貢獻者峰會)的同期活動舉辦的,但我們在日本啟動 Kubernetes 上游訓練,目的是在日本舉辦類似活動,以增加日本貢獻者。

在疫情之前,訓練是面對面進行的,但自 2020 年以來,已改為線上進行。訓練為尚未貢獻 Kubernetes 的人提供以下內容:

  • Kubernetes 社群簡介
  • Kubernetes 程式碼庫概述以及如何建立您的第一個 PR
  • 降低參與門檻的提示和鼓勵,例如語言
  • 如何設定開發環境
  • 使用 kubernetes-sigs/contributor-playground 的實作課程

在課程開始時,我們會解釋為什麼貢獻 Kubernetes 很重要,以及誰可以貢獻。我們強調貢獻 Kubernetes 可以讓您產生全球性的影響,而且 Kubernetes 社群期待您的貢獻!

我們還會解釋 Kubernetes 社群、SIG 和工作組。接下來,我們解釋成員、審閱者、核准者、技術主管和主席的角色與職責。此外,我們還介紹我們主要使用的溝通工具,例如 Slack、GitHub 和郵件列表。一些說日語的人可能會覺得用英語溝通是一種障礙。此外,社群新手需要了解溝通在何處以及如何進行。我們強調邁出第一步的重要性,這是我們在訓練中最關注的重點!

然後,我們會瀏覽 Kubernetes 程式碼庫的結構、主要儲存庫、如何建立 PR 以及使用 Prow 的 CI/CD 流程。我們詳細解釋從建立 PR 到合併 PR 的過程。

在幾場講座之後,參與者將使用 kubernetes-sigs/contributor-playground 體驗實作,他們可以在其中建立一個簡單的 PR。目標是讓參與者感受貢獻 Kubernetes 的過程。

在課程結束時,我們還會詳細解釋如何設定開發環境以貢獻 kubernetes/kubernetes 儲存庫,包括在本機建置程式碼、有效率地執行測試以及設定叢集。

參與者訪談

我們對參與我們訓練計畫的人員進行了訪談。我們詢問了他們加入的原因、他們的印象以及他們未來的目標。

Keita MochizukiNTT DATA 集團公司

Keita Mochizuki 是一位持續貢獻 Kubernetes 和相關專案的貢獻者。Keita 也是容器安全方面的專家,最近出版了一本書。此外,他還提供了一個 新手貢獻者路線圖,這對於剛開始貢獻的人非常有幫助。

Junya: 您為什麼決定參加 Kubernetes 上游訓練?

Keita: 實際上,我參加了兩次,分別在 2020 年和 2022 年。2020 年,我剛開始學習 Kubernetes,並想嘗試參與工作以外的活動,所以在 Twitter 上偶然看到這個活動後就報名了。但是,當時我沒有太多知識,而且貢獻 OSS 感覺是我遙不可及的事情。結果,訓練後我的理解很淺薄,離開時只留下「嗯,好吧」的感覺。

2022 年,當我處於認真考慮開始貢獻的階段時,我又參加了一次。這次,我事先做了研究,並能夠在講座期間解決我的問題,使其成為一次非常有成效的經驗。

Junya: 參與後您的感受如何?

Keita: 我覺得這次訓練的意義很大程度上取決於參與者的心態。訓練本身包含一般性的解釋和簡單的實作練習,但這並不意味著參加訓練會立即導致貢獻。

Junya: 您貢獻的目的是什麼?

Keita: 我最初的動機是「深入了解 Kubernetes 並建立實績」,意思是「貢獻本身就是目標」。現在,我也會貢獻以解決我在工作中發現的錯誤或限制。此外,透過貢獻,我變得比較不猶豫直接從原始程式碼分析未記載的功能。

Junya: 貢獻中最具挑戰性的部分是什麼?

Keita: 最困難的部分是邁出第一步。貢獻 OSS 需要一定程度的知識,而利用像這次訓練和來自他人的支持等資源至關重要。一句讓我印象深刻的話是,「一旦你邁出第一步, आगे बढ़ना 就會變得更容易。」此外,就將貢獻作為我工作的一部分持續下去而言,最具挑戰性的方面是以成就的形式呈現成果。為了隨著時間的推移持續貢獻,將其與業務目標和策略對齊非常重要,但上游貢獻並不總是能立即產生可以直接與績效掛鉤的成果。因此,確保與主管達成共識並獲得他們的支持至關重要。

Junya: 您未來的目標是什麼?

Keita: 我的目標是貢獻於影響更大的領域。到目前為止,我主要透過修復較小的錯誤來貢獻,因為我的主要重點是建立實績,但展望未來,我希望挑戰自己進行對 Kubernetes 使用者有更大影響或解決與我的工作相關問題的貢獻。最近,我也一直致力於將我對程式碼庫所做的變更反映到官方文件中,我認為這是實現我的目標的一步。

Junya: 非常感謝您!

Yoshiki FujikaneCyberAgent, Inc.

Yoshiki Fujikane 是 PipeCD 的維護者之一,PipeCD 是一個 CNCF Sandbox 專案。除了為 PipeCD 中的 Kubernetes 支援開發新功能外,Yoshiki 還積極參與社群管理並在各種技術會議上發表演講。

Junya: 您為什麼決定參加 Kubernetes 上游訓練?

Yoshiki: 在我參加時,我還是一名學生。我只短暫地使用過 EKS,但我認為 Kubernetes 看起來既複雜又酷,而且我對它很感興趣。當時,OSS 感覺像是遙不可及的東西,而 Kubernetes 的上游開發似乎令人望而生畏。雖然我一直對 OSS 很感興趣,但我不知道從哪裡開始。正是在這個時候,我了解了 Kubernetes 上游訓練,並決定挑戰自己貢獻 Kubernetes。

Junya: 參與後您的印象如何?

Yoshiki: 我發現它非常有價值,可以了解成為 OSS 社群一員是什麼感覺。當時,我的英語能力不是很強,因此訪問主要資訊來源對我來說是一個很大的障礙。Kubernetes 是一個非常龐大的專案,我對整體結構沒有清楚的了解,更不用說貢獻所需的知識。上游訓練提供了社群結構的日語解釋,並讓我獲得實際貢獻的實作經驗。感謝我收到的指導,我能夠學習如何接觸主要來源並將其用作進一步調查的起點,這非常有幫助。這次經驗讓我意識到組織和審閱主要來源的重要性,現在當某些事情引起我的興趣時,我經常深入研究 GitHub issue 和文件。因此,雖然我不再貢獻 Kubernetes 本身,但這次經驗已成為我貢獻其他專案的良好基礎。

Junya: 您目前貢獻哪些領域,以及您參與的其他專案是什麼?

Yoshiki: 目前,我不再使用 Kubernetes,而是擔任 PipeCD(一個 CNCF Sandbox 專案)的維護者。PipeCD 是一個 CD 工具,支援各種應用程式平台的 GitOps 風格部署。該工具最初是作為 CyberAgent 的內部專案開始的。隨著不同團隊採用不同的平台,開發 PipeCD 是為了提供具有一致使用者體驗的統一 CD 平台。目前,它支援 Kubernetes、AWS ECS、Lambda、Cloud Run 和 Terraform。

Junya: 您在 PipeCD 團隊中扮演什麼角色?

Yoshiki: 我全職致力於改進和開發團隊內 Kubernetes 相關的功能。由於我們在內部以 SaaS 形式提供 PipeCD,因此我的主要重點是新增功能並改進現有功能,作為該支援的一部分。除了程式碼貢獻外,我還透過在各種活動中發表演講和管理社群會議來幫助 PipeCD 社群成長。

Junya: 您可以解釋一下您正在開發哪些與 Kubernetes 相關的改進或開發嗎?

Yoshiki: PipeCD 支援 Kubernetes 的 GitOps 和漸進式交付,因此我參與了這些功能的開發。最近,我一直在開發簡化跨多個叢集部署的功能。

Junya: 您在貢獻 OSS 時遇到任何挑戰嗎?

Yoshiki: 一個挑戰是開發在滿足使用者用例的同時保持通用性的功能。當我們在營運內部 SaaS 時收到功能請求時,我們會首先考慮新增功能來解決這些問題。同時,我們希望 PipeCD 作為 OSS 工具被更廣泛的受眾使用。因此,我一直在思考為一個用例設計的功能是否可以應用於另一個用例,確保軟體保持彈性和廣泛的可用性。

Junya: 您未來的目標是什麼?

Yoshiki: 我想專注於擴展 PipeCD 的功能。目前,我們正在「One CD for All」的口號下開發 PipeCD。正如我之前提到的,它支援 Kubernetes、AWS ECS、Lambda、Cloud Run 和 Terraform,但還有許多其他平台,而且未來可能會出現新的平台。因此,我們目前正在開發一個外掛系統,讓使用者可以自行擴展 PipeCD,我想推動這項工作。我也在開發 Kubernetes 中的多叢集部署功能,我的目標是繼續做出有影響力的貢獻。

Junya: 非常感謝您!

Kubernetes 上游訓練的未來

我們計畫繼續在日本舉辦 Kubernetes 上游訓練,並期待歡迎更多新的貢獻者。我們的下一次課程預計在 11 月底的 CloudNative Days Winter 2024 期間舉行。

此外,我們的目標是將這些訓練計畫不僅擴展到日本,還擴展到世界各地。Kubernetes 今年慶祝了 10 週年,為了讓社群變得更加活躍,全球各地的人們持續貢獻至關重要。雖然上游訓練已經在多個地區舉辦,但我們的目標是將其帶到更多地方。

我們希望隨著越來越多人加入 Kubernetes 社群並做出貢獻,我們的社群將變得更加充滿活力!