Kubernetes Internal #1を開催しました

bells17
Oct 19, 2020

10/13にKubernetes Internalという勉強会を開催しました。

この記事では自分で勉強会を主催するにあたって

  • どんな勉強会をやったのか?
  • 勉強会を開催するにあたってどんなことやったのか?
  • 実際にやってみてどうだったのか?

といったことを書いています。

どんな勉強会をやったの?

主にKubernetesに関する設計や実装をコードレベルで共有する勉強会になります。

第一回目ではコードを直接読んでいく要素は少なめだったのですが、導入編として以前このブログで書いた「Kubernetesのコードリーディングをする上で知っておくと良さそうなこと」という記事

の内容を解説するという題材で、Kubernetesのコードリーディングをどうやって始めていけばいいか?というお話を僕の方からさせていただき、その後内容についての質疑応答やディスカッションを運営メンバーやzoomで参加してくださった参加者の方々と行いました。

YouTube Liveのアーカイブはこちらになります。

https://www.youtube.com/watch?v=BBw8p8sQy0Y

上記でKubernetesのコードリーディングに関する基本的な情報は共有できたかなと考えてますので、今後はよりコードを中心にKubernetesのコンポーネントなどの実装について共有する会をやっていけたらと考えていて、直近ではCloud Controller ManagerやScheduler周りについてお話をしていきたいと考えています。
(本当は第一回目でCloud Controller Managerについても一緒に話をする予定だったのですが、まったく時間内に収まらなさそうだったので別の会にさせていただきました)

なんでこの勉強会をやろうと思ったの?

僕の周りでKubernetesなどの内部について調べている人が少なかったので、Kubernetesの内部実装などについて共有しあえる人を増やしたかったのと、Kubernetesの仕組みについて興味を持ってくれる人が増えると良いなと思って勉強会を開催しました。

僕は普段業務でKubernetesのコンポーネントを書いたりしている都合上、Kubernetesの内部実装を調べたりすることがよくあるのですが、そういった情報を共有してディスカッションする機会が少ないので、興味がある人達で集まって色んなテーマについてディスカッションできたらいいなと思っていたのが根本的な動機です。

前々からこのような勉強会をやりたいなと思っていたのですが、Cloud Native Days Tokyo 2020の時(だった気がする)に@fujiihdaさんの

https://twitter.com/fujiihda/status/1304635045521494016?s=20

というツイートを見つけて

https://twitter.com/bells17_/status/1304671605168074754

という感じで始めたのがきっかけになります。

それでこのツイートとか、一緒に運営やってくれるのに興味ある人いませんか?みたいなツイートとかで興味持っていただいた方と一緒にやりはじめたという感じです。

最終的に現在はこのメンバーで勉強会を運営していっています。

勉強会をやるまでにやったこと

勉強会をやるまでには大まかにこんなことをやりました

  • 勉強会の企画案を作る
  • Discordのサーバーを立てる
  • 運営メンバーで顔合わせ会を行う
  • zoom/YouTube Liveでの勉強会開催~配信の環境を整える
  • リハーサルをする

勉強会の企画案を作る

一番はじめに勉強会の企画をドキュメントにまとめるようにしました。

僕の勉強会のイメージが以前genbokuさんが開催された「Programming Kubernetesの輪読会」のKubernetesなどの内部実装版というイメージだったので、その方向で内容をまとめました。

「Programming Kubernetesの輪読会」の輪読会では

のように

  • 章ごとに担当者が内容をまとめてきて発表を行い
  • その発表内容について質疑応答・ディスカッションを行う

という内容でしたので、これをオンラインでやるようなイメージで案を作った感じです。

実際に作った企画案がだいたいこんな感じのやつです。
(実際の企画案をだいたいそのまま出してるのでリンクで見れないのも多いです)

https://docs.google.com/document/d/1AsLD1iHItqvq47qm_o2LAJoHqgnqYLeUd9rKTEtNdtk/edit

オンラインでやるにあたっての違いとしては

  • 質疑応答・ディスカッションに参加してくれている参加者にはzoomで参加してもらう
  • zoom参加者以外にも興味ある人に見てほしい/アーカイブとして見直したいのでYouTube Liveでの同時配信も行いたい

といったあたりでした。

また作成した企画案の内容について運営メンバーに見ていただいて、 Google Docsのコメント機能を中心に内容についてディスカッションを行いました

たとえばこんな感じです

Discordのサーバーを立てる

  • 勉強会の主なコミュニティをDiscordのチャットで行う
  • 内部実装に関するやり取りをできる場が欲しい

と思っていたため勉強会をやるにあたってDiscordのサーバーを立てました。

なんでk8sのSlack Workspaceを使わずに新たにDiscordサーバーを立てたのかというと

  • k8sのSlack Workspaceでチャンネルを作成するのはコミュニティに申請して許可を取る必要があるので難しそう(既存のjpチャンネルのどこかでやるのもやっていいのかわからなかった)
  • Cloud Native Days TokyoなどDiscordでサーバー立てる例を最近いくつか見ていて、特にボイスチャットでのAsk the speakerとかが結構良かった
  • どうせなら自由にチャンネルとかを作成できる場を作ろう
  • 運営メンバー間でのやりとりの場としても使えるし

といった理由で作成しました。

作成するにあたってちょっと前に技術書典のDiscordサーバーを見て良さそうだなーと思ったのでチャンネルとかの作りを参考にさせていただきました。

運営メンバーで顔合わせ会を行う

企画案の内容についてはここまででだいたいまとまっていたので

  • お互い知らない人もいると思ったので、勉強会開催前に運営メンバーで一度顔合わせをしておきたい
  • 勉強会について口頭で認識合わせをしておきたい
  • 勉強会の詳細について詰めたい

などを目的に顔合わせをする会を行いました。

実施にあたっては簡単にスライドを作り、以下のようなことについて話し合いを行いました。

実際に口頭で話し合ってみると、当たり前ではありますが個々人でイメージしている勉強会の像が異なっていたりしたし、運営メンバー同士でコミュニケーションする機会にもなったので、やってよかったなと思いました。

zoom/YouTube Liveでの勉強会開催~配信の環境を整える

  • 勉強会開催: zoom
  • ライブ配信: YouTube Live

で行おうと思っていたのでこれらの準備を行いました。

やり方としてはkamenekoさんの

をだいたいそのまま参考にさせていただきました。

勉強会内容としてはセッション+ディスカッションという構成で、ディスカッションの時間が発表と同じくらい時間をとっているので、OBSで色々画面を作ってやるという感じよりはzoomのProアカウントでのYouTube Live配信そのままでも問題ないかなと思いシンプルにzoom+YouTube Liveという構成で行いました。
(kamenekoさんの記事でOBSの使い方に関する記事もあるので、OBSを使った配信などがやりたくなった場合には別途参考にしたいなと思ってます)

上記の記事で紹介されていること以外で工夫した点としては念の為

  • zoomホスト+YouTube Live配信を行うマシンと
  • 発表者として発表を行うマシン

を分けたくらいでした。
(リハーサルでは同じマシンで全部やっても大丈夫だったのでzoom Proアカウントだけあれば誰でも簡単に勉強会の配信とかができるなと思いました)

リハーサルをする

最後に念の為リハーサルを行いました。

Discordでリハーサル見てコメントとかくれる人がいるかを運営メンバーのDiscordチャンネルで募集して、参加可能だった方数名に見てもらいました。

第一回目は良くも悪くも

  • zoomホスト+配信
  • 司会
  • 発表者

のすべてを僕がやっていたので、参加していただいたメンバーには実際にどんな感じで勉強会をやろうと思ったのかを伝えることができ、それに対するフィードバックをもらってディスカッションすることができたので、これもやってみてかなりよかったなという感じです。

実際に勉強会をやってみて

はじめは

  • 運営メンバー: 9名
  • zoom参加者: 5名
  • YouTube Live参加者: 20–30名

くらいなんじゃないかなという想定をしていたのですが

と200名以上の方に参加登録していただき、とてもありがたかったです。

勉強会後のアンケートでも

のようにKubernetesのコードリーディングに興味を持っていただいた方が多かったので嬉しいです。

セッション後のディスカッションタイムについても

  • 始めは僕のセッション内容に対する質疑応答だけになるかなー?とか
  • そもそも参加者から質問全然でなくて運営メンバーがフォローしてくれるかなー

とか思ってたのですが、僕がほとんど喋らなくてもセッションの内容についても、それ以外についてもzoomに参加してくれたKubernetesの有識者の皆さん同士で話がかなり盛り上がってくれて、想定していた40分を超えてディスカッションが続いてくれたのですごい良かったなと思いました。
(時間を10分ぐらい過ぎたあたりで途中でディスカッションを中断してしまったのですが、むしろあのままもうしばらく中断せずに続けても良かったかなと思ってます)

あとzoomやYouTube LiveのURLをメッセージしたりなどの準備についてはもうちょっと早くお送りできればよかったなと思うので次回以降で改善できたらと思ってます。

さいごに

こんな感じで勉強会をやりたいなと思ってからちょうど1ヶ月くらいで200名オーバーの勉強会が開催できたので良かったなと思ってます。

次回以降はよりDeepなネタになっていく予定なので、ディスカッションについてもDeepめな話ができればよいかなと考えています。

内容についてはCloud Controller ManagerやScheduler以外に↓のシートのような内容を検討していたりします。
(これから調べていきたい、みたいなのも入ってます)

特に下の方のはこれから調べたい!みたいなやつが多め

ただあくまで上記はまだ検討している段階のものなので、発表するのに興味ある方がいれば
https://forms.gle/6bgs37R3NUkmfBtZ6
のフォームか、もしくはTwitterのDMまでご連絡いただけたらと思っています!

まだ始まったばかりの勉強会なので

  • 発表するコンテンツ(必ずしもコードレベルでの共有などでなくても)
  • 発表時間

など柔軟に検討できると思います。

  • 今はまだKubernetesの実装とかに詳しくないけどこの勉強会で発表するために調べてみるとか
  • Kubernetes本体じゃなくて、関係しそうなCloud Nativeなソフトウェアについて

などのお話でも大歓迎です!

--

--