2019-09-24

今日Container Runtime Meetupという勉強会に参加させていただいたのだが、KubernetesにContainerに詳しい第一人者による神々の集いに目がくらみそうになった。

ここにいる人たちを除いたら、日本でどなたがContainerに詳しいといえるのかわからない感じの人たちが一堂に揃っている。技術書典で池袋ジュンク堂GitHubのissueで名前を見たことがある人たちがいる。

Organizerにいらしゃったので来るかもしれないと期待していたgVisorの中の人たちがいないのが寂しいくらい。

そんな人たちによる登壇者の話がrunc runから始まったのはまだいい。予告があったり、自分は途中でinit処理にわけわからなくなった下地があったので。少なくともその後について腑に落ちたのだ。

だが、そこからいきなりnsexec.cに行ったのは突き放された感じがしてひたすらうなづくしかなかった。

Kushwahaさん。goのimportで定義されることにより本文が呼ばれる前にプリ実行されるCライブラリ名前空間を作成している、そのライブラリの処理の解説が行われた。

https://github.com/opencontainers/runc/blob/master/libcontainer/nsenter/nsexec.c

もうここで、unshare?unshare what?という気持ちになって、あー空のnamespaceを作成できるコマンドかと腑に落ちる暇もなくSudaさん。

ライブラリ実装と呼び出し方法について実際に処理を書いた人が、直直にケースごとのnamespace()の使い方の解説をするのだ。

こんなの後にも先にも一生聞けないだろう。聞き逃すまいと望んだが、MountNSの話は正直セキュリティ懸念があるのね、だから実装=サポート積極的にされてないということしかからなかった。

ファイルディレクトリ一つ一つのアクセス権限付与プロセスIDごと振り返る必要があって、それを高速にできるfsがsysfsという認識であってるのだろうか...自分でも何を言っているのかメモを見返しても呪文しか読めない。

その後もsd_notifyをruncから呼んでいることに端を発したコンテナ起動待ち処理をどう実装するかという議論やら、某ベンダーさんによるruncをガチ運用している環境下でftraceを使ったデバッグの実演やらもうこの夜ここでしか聞けないような話ばかりで。

祭りが終わった後、ほとんどの人が帰らずに、会場となった台所みたいな食卓を囲んでフリートークを交わしていた。

Cloud Controller Managerを自社内向けに実装する話の相談をしていたり、先ほどの登壇者が同じPCの画面を前に肩を並べてruncのソースコードリーディングを始めたり好き勝手にしてる。

それは正直自分みたいに浅い知識を持った人には、RHTechExchangeで聞いた英語雑談よりも遥かに遠い世界だった。

同じ日本語なのに正直何言っているのか本気でわからなくて。地味に悔しかった。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん