4-Year to Kubernetes SIG-Scheduling Chair / Tech Lead

May 22, 2025

English version

4月にKubernetes SIG-SchedulingのChair/Tech Leadに昇進した。SIG-SchedulingはKubernetesのSchedulerを筆頭にScheduling周りの開発を担当しているチームである。 2021年に貢献を始めたので、4年間コツコツ積み上げてきた結果ということになる。

2021年、大学生の時にKubernetesへの貢献を始めたのはGoogle Summer of Codeがきっかけだった。 Google Summer of Codeには選考があり、「そのプロジェクトにcontributeしておくと、選考の時にアピールになるらしい」という話を聞き、邪な気持ちでKubernetesへの貢献を始めた。 その効果があったのかは定かではないが、結果として選考を通過することができ、kube-scheduler-simulator というプロジェクトを始めた。

Introducing kube-scheduler-simulator By Kensei Nakada (Tetrate) | Kubernetes Blog

Google Summer of Codeに参加した時は英会話も本当に全くできず、毎回メンターとの1 on 1でも苦労していた。 プロジェクトに関連して、何度かSIG-Schedulingのコミュニティミーティングで話す機会があったりもしたが、用意したカンペの部分以外は全く英会話が成立せず…という感じでかなり悲しい思いをした。 これらの経験が英語の勉強を始める良いきっかけにもなり、キャリア的にも大きなターニングポイントとなった。 新卒でメルカリを選んだ理由の一つも「英語が使える環境」というのがあったし、今となっては、海外の会社に勤めているため、人生とはわからない。とはいえ、今でも聴き慣れた人以外の英語を聞き取るのには苦労しているがががg…

Google Summer of Codeは今は社会人も参加できるようになったらしいので、もし気になる人は是非。

その後、Google Summer of Codeが終わり、社会人になってからも、趣味でKubernetesのScheduler本体への貢献を細々と続けていた。 まず、2021年の8/23に晴れてKubernetesのGitHub Organizationの仲間入りを果たした (これはGoogle Summer of Codeの期間中)。 KubernetesのGitHub Organizationに入るのはさほど難しくない。 いくつか貢献を重ね、その時に関わったレビュワー等に「GitHubのメンバーになりたいんだけど、スポンサーしてくれない?」とお願いすれば、大抵入れてもらうことができるだろう。

そして、貢献開始の1年後、2022年の5/9にSIG-SchedulingのReviewerに仲間入りをした。 ReviewerはSIG公認(?)のレビューを回す人たちで、具体的にはSIGの担当エリアにプルリクエストが作成されると、レビューのリクエストが飛んでくるようになる。様々な議論等にもメンションをもらうことが増え、“メンテナ感”が出てくるタイミングである。 そして、2023年の5/30にSIG-SchedulingのApproverに昇格した。 Approverはその名の通り、プルリクエストに最終のApproveをつけることができる強い権限である。

これらReviewerやApproverになるにはかなり厳しい規定があり、例えばApproverになるには作成した30個以上のプルリクエストがマージされてなくてはいけなかったりする。 厳しい規定があることは完全に理に適ってはいるが、これが故にどうしてもプロジェクト全体として「多くのContributorからのプルリクエストを少数のReviewer/Approverがレビューする」という構造になってしまっている。オープンソースにプルリクエストを投げたが無視された経験のある人もいるだろうが、大抵これが原因である。権限を持つ人間の数には限りがあり、彼らの時間は優先度の高いプルリクエストのレビューや議論を進めるのに費やされてしまう。 Kubernetesは非常に規模の大きく人気のオープンソースではあるが、多くのContributorが辿りつかないために、Reviewer/ApproverレベルのコントリビューターはどのSIGも獲得に苦労している。 裏返すと、辛抱強くコツコツ貢献を続け流気力さえあれば、スムーズに昇格を受けることはできるだろう。

その後2年弱ほどApproverとして活動する日々を過ごして、僕はTech Lead / Chairとして推薦を受け、昇格をすることができた。Tech Lead/ChairはSIG全体をリードする立場であり、KEPやプルリクエストのレビューはもちろん、SIG全体の方針の議論など責務は大きく広がる。

実際内部的には半年ほど前から、前リーダー達からこの話が挙がっており、移行期間として、見習いとして活動していた。 SIG-SchedulingはアクティブなReviewer/Approverが元々かなり少なかったところに、前リーダー達が全員同時に辞めるということで、個人的には「この先俺たちどうすんねん…」と思っていたが、Googleが数人新たにフルタイムのコントリビューターを足してくれたおかげで、事なきを得た。

ということで、半年前から見習いをしているとはいえ、v1.34のリリースサイクルから本格的にTech Lead / Chairとして動き出し、他二人の新たなメンバーと共に協力して頑張っている。

「実際どのくらい貢献しているのか」という質問をたまにされる事があるが、毎日平日に1時間前後と土日も暇な時は基本的にパソコンの前にいたりする。CNCF DevStatsを見ると、Kubernetesリポジトリでの貢献数のランキングが見れたりするが、ここ数年は基本的に5位前後を彷徨っていると思う。

ここまでの具体的な貢献内容で言うと、 Kubernetes Enhancement Proposal(= 大きな機能変更の提案書)は現時点で7つ執筆し、その内5つがすでに実装された。 そのうち、最も印象に残っているのはQueueingHintだと思う。Podのスケジュールに失敗した時にどのタイミングでそのPodをリトライするかをより良く判断するための内部機能である。 外部のKubernetesユーザーから見える変更ではないが、Scheduler内部で大きな変更が必要で、その分パフォーマンス等におけるインパクトも大きく、議論や実装を通して大きな経験になった。

また、道中Kubernetes Contributor Awardsも二度受賞する事ができた、非常にありがたやである (2022: SIG-Scheduling, 2023: SIG-Autoscaling) このAwardsはKubecon NAで毎年発表される。Awardを取ると以下のようなキュートな額がもらえるのでかなり嬉しい。シカゴの時にもらったピザのやつは特にお気に入りである。

Awardの賞状


オープンソースは人にとってモチベーションが大きく異なると思う。仕事で仕方無くやってる人もいれば、実績作りのためにやってる人、経験を積むためにやってる人、単に技術が好きでやってる人など様々である。

僕にとっては始めから今に至るまで完全に趣味であり、いわゆるフルタイムコントリビューターをした経験はない。別の記事で少し触れたが、単に「有名なオープンソースの開発者ってかっこよくね?」からモチベーションがスタートしている。 正直開始時点ではKubernetesである必要は全くなかった。なんならKubernetesに詳しくもなかった。「Kubernetesってでかいプロジェクトだし、モダンな気がするし、貢献できたらカッケーやんね」くらいの感じでGoogle Summer of CodeでKubernetesを選んだところから全てが始まった。 前の記事でも触れたが、僕の基本的な特性は刺激ジャンキーである。自分にとって新しいことをしているときにテンションが上がり、集中力が増すタイプである。 この特性を少し前の僕はただの飽き性だと考えていた。なぜ飽き性な僕がKubernetesへの貢献を趣味として続けられているかは、あまり自分でもわかっていなかった。例えば、SIGのReviewerやContributor Awardを取った時点で、「Kubernetesのコントリビューター」を名乗る(?)に十分すぎるし、そのタイトルで満足して飽きていてもおかしくなかった。

ただ、今思えば、むしろ飽きなかった理由がその”刺激ジャンキー特性”にあると思う。 Kubernetesは大きなプロジェクトなので権限をもらいできることが広くなっていく。そして、10周年を過ぎた今でも、その変化は激しく、毎リリース新しい機能が沢山追加されている。 Kubernetesの世界にいることは常に刺激的だった。飽きてしまうような繰り返しの作業などもなく、新たなユースケースに対する議論などは常に楽しかった。今となっても、知らない事が多くあり、常に学びがある。 おそらくこれがKubernetesへの貢献が僕の趣味であり続けている唯一の理由である。これ以上も以下もない。別に「好きな技術/コミュニティに貢献したい」みたいな立派なボランティア精神もなければ、「貢献を通してスキルアップ/キャリアアップ」と言った感じで動いているというわけでもない。

とはいえ僕がこの活動から利益を全く得ていないわけではない。新卒の時の採用などでは明らかにこの経験が優位に働いていたし、オープンソースでの繋がりで転職を行なっている。 正直オープンソースでの活動という目にみえる実績がなければ、こんなちっぽけな若造が色々お誘いなんぞもらえるはずがない。「オープンソース貢献はキャリアの成長につながる」という考えは実際のところ大正解である。

また、オープンソース活動を通して国内外多くの人と知り合うことができているのは言うまでもない。 活動を通して普通だと絶対に関われない仲間達と国/会社を超えた繋がりを得られているのは、計り知れないほどの幸運だと感じている。

「みんなオープンソースやろうぜ!」みたいな高尚なことは言えるような立場ではないが、もしあなたが興味を持ちそれを継続するのであれば、そこには大きなリターンがあるということはここで示しておきたい。

ということで、Follow me on GitHub, or Buy me a coffee!

このエントリーをはてなブックマークに追加