こんにちは。 しずかなインターネットをきっかけに一年近く”ブログを書く”と言うことを忘れていたことに気がつきました。
今日は、タイトルの通りContributor Awardの話と、一年のKubernetes Contributionの振り返りをしようかと思います。 書いてみると、この一年短いようで長かった(?)のだと実感しました。
執筆段階での過去一年のKubernetesレポジトリへのcontribution数は2042
だったようです(ref)。
これはKubernetesの全Contributorの内で9位に当たります。
趣味にしてはやり過ぎですね、この順位を見てドン引きしました。
これによって、会社別ランキングを見ると、MercariのKubernetesへの貢献数は全体9位(Independent 入れるなら10位)になっています(ref)。 いや、これ採用の宣伝か何かで使った方がいい気がするな…
今年ももっぱらSIG-Schedulingで開発をしており、 5月からはSIG-SchedulingのApproverとして活動していました。
Approverは文字通りPRをApproveして、取り込むことができる人です。いまだに大きいPRを/approve
するのは緊張します。
Great honor to become an approver of SIG/Scheduling. (with @kerthcet!)
— sanposhiho (@sanpo_shiho) May 30, 2023
Thanks for all support from everyone!
[kubernetes/kubernetes] Add kerthcet and sanposhiho as SIG scheduling approvers (PR #118294)https://t.co/kOXKBTBiJb
そのため、後半はレビューに時間を割くことが多くなっていたのですが、実装を担当した大きな変更で言うと、
- Container Resource based Pod Autoscaling (beta)
- Introduce MatchLabelKeys to Pod Affinity and Pod Anti Affinity
- Per-plugin callback functions for accurate requeueing in kube-scheduler
あたりになるでしょうか。特にQueueingHintはuser-facingではないのですが、内部的にはかなり大きな変更で、 発案からデザイン、実装までを自分で行なった思い入れのある(?)機能です。現在はSchedulerのコアに手を入れる部分は終わり、各プラグインの実装を沢山のcontributorの方々と共に進めています。 現在もやることは山積みですが、近い将来で完遂したいですね。
その他で言うと、新しくSIGのサブプロジェクトとして、kubernetes-sigs/kube-scheduler-wasm-extensionを始めました。
Kubernetes SchedulerをWasmで拡張できるようにしようと言う、かなりチャレンジングなプロジェクトです。 Kubernetesには様々な拡張機能がありますが、大抵 Webhook or Goで拡張を書いて直接組み込む と言うデザインが採られています。Kubernetesコミュニティでは公式でメンテナンスしているWasm関連の拡張は存在せず(AFAIK)、このプロジェクトが良さげに完成すれば、SIG-Schedulingのみならず、コミュニティにとって大きな一歩になると思います。(絶賛Contributor募集中!)
このWasmのプロジェクトを通して縁があり、CloudNative Summit Wellingtonで登壇をしました。カンファレンスが楽しかったのはもちろんのこと、ニュージーランドまじで良かった。次は観光で行きます。スライドはこちら。
I'm about to leave Wellington 🇳🇿 🛩
— sanposhiho (@sanpo_shiho) September 7, 2023
I had a blast. I was honored to be part of excellent #cloudnativeANZ. It was really great to hear interesting talks and network with people there! pic.twitter.com/yggsw7SPRy
また、もうひとつOwnerをしているkube-scheduler-simulatorはv0.1.0に到達しました。100%いくちるさんのcontributionのおかげです。大感謝。 彼とはCloudNative Days Fukuokaでも、共に登壇…する予定でしたが、台風のせいで僕が沖縄に閉じ込めされたせいで、叶いませんでした 😠
台風で数日沖縄から脱出出来ず、CloudNative Days Fukuoka現地参加できなくなりました😭
— sanposhiho (@sanpo_shiho) August 1, 2023
自分の単独セッションは急遽事前収録での対応、共同セッションは@196Ikuchil の単独セッションとなります🙏
急な相談で対応して頂いた運営の方々、いくちるさん(@196Ikuchil)ありがとうございます🙇 #CNDF2023
11月のKubeconではSIG-Schedulingのメンテナーセッションで登壇しました、 アーカイブはこちらに残っています。 (ただ、今回はあまり大きな機能追加がなかったため、内容はニッチかもしれません。)
Kubeconは普段顔を合わせることなく一緒に開発をしてるチームメンバーと直接話すことができる非常にいい機会でした。
SIG-Scheduling folks! 😀 pic.twitter.com/gkAlRf0Q0k
— sanposhiho (@sanpo_shiho) November 9, 2023
そして、毎年Kubecon NAのContributors SummitではKubernetes Contributor Awardsというものが発表されます。 去年はSIG-Schedulingの枠で頂いており、今年はSIG-AutoscalingからAwardを頂くことができました。ありがたや。
実はAwardの受賞者は事前に知らされるのですが、どのSIGで受賞したのかは知らされません。 今年も引き続きメインで活動しているのはSIG-Scheduling周りだったので、知らせを聞いた時は何かの手違いで二年連続受賞したかと思っていたのですが(通常同じSIGから同じ人にAwardが出ることはない)、 SIG-Autoscalingからだったのは意外でした。
SIG-AutoscalingではHPAのContainerResource
metricのBetaリリース周りを担当しており、それが受賞の理由だったようです。
メルカリではDatadog MetricをHPAのContainerResource
の代わりに使用していたのですが、パフォーマンスや信頼性などの観点から、ContainerResourceへの移行を検討していました。
ただ、HPAのContainerResource
metricが一向にalphaからbetaに移行しないので、痺れを切らして自分でbetaリリースを進めることにした、という背景でした。
(GKEのクラスターではalphaの機能が使用できない)
メトリクス周りも含め、betaリリースにはいくつかのブロッカーがありましたが、 なんとかbetaリリースにv1.27で漕ぎ着けられたのはとても良かったです。
冒頭の
書いてみると、この一年短いようで長かった(?)のだと実感しました。
の意味を分かってもらえたかもしれません。 大学生の時になんとなく始めたKubernetesへの貢献がここまで僕の世界を広げてくれ、そして広げ続けてくれていることは、予想していませんでした。
長く続けるにつれて、最近はやれることが指数関数的に増えていき、やれることの中からやりたいことを選ぶ必要が出てきました。 どうすれば自分の出力を最大限にできるか考えつつ、色々タスク管理などを試みています。 今はとりあえず全てのレビューリクエストをGoogle ToDoに突っ込んで雑に管理していますが、より良い方法があったら教えてください…
来年以降も細々と楽しめる範囲で続けていきたいです。