Docker Meetup Tokyo #27開催レポート

Hiroyuki Makino
nttlabs
Published in
11 min readJan 18, 2019

こんにちは。NTTの牧野です。今回は2019年1月16日、Docker Tokyoコミュニティが主催するDocker Meetup Tokyo #27のレポートをお届けします。今回のミートアップはNTTの田町オフィスで開催されました。定員130名に対して3倍以上の応募があり、Dockerコミュニティの活況度がうかがえます。

今回のミートアップでは、DockerCon EUで発表されたCloud Native Application Bundle (CNAB)やDocker Compose-on-Kubernetesに関する情報やKubeCon USの様子などを中心に、メインセッション5本、ライトニングトーク4本が発表されました。発表の後は懇親会も開かれ情報交換で盛り上がりました。

発表者から発表資料も公開されているほか、crash.academy提供で発表動画も公開されますのでご覧いただければと思います。Twitterのハッシュタグは#dockertokyoです。

会場となったNTTソフトウェアイノベーションセンタ田町オフィスは、オープンな技術に関わる人々が集まる場所です。勉強会やミートアップなどのイベントを開催したい方は、ぜひお声掛けいただければと思います。

セッション紹介

KubeCon 報告1: コンテナランタイムやFirecrackerの話題ひととおり振り返ってみよう (Container runtimes & Firecracker Recap)
弊社 徳永 航平 (@TokunagaKohei)

KubeConで出たコンテナランタイムの話題を中心に、コンテナランタイムの歴史と様々なコンテナランタイムが紹介されました。2018年は低レベルランタイムが盛り上がっていたそうです。

まずは、Kubernetesのセキュリティを考える上で、k8s上で最小化すべきセキュリティ脅威とコンテナ隔離を強めるコンテナランタイムの話題です。コンテナの隔離をより強める要素技術として、VMやユーザ空間カーネル等によるコンテナのサンドボックス化や、時間情報をコンテナごとに隔離するTime namespaceが紹介されたほか、Linux audit systemで初めて「コンテナ」という概念を扱うAudit Container IDが紹介されました。

次に、ランタイムの紹介では、containerdの拡張性や各コンポーネントの話題や、KubernetesのCRIのミニマル実装であるcri-oや、docker互換の軽量ランタイムpodman、Pod単位のVMでコンテナを隔離するKata Containersとユーザ空間カーネルでコンテナを隔離するgVisorのパフォーマンス面での比較、Kata Containersとユニカーネルによる隔離でシステムコールを最小限(7種類のみ)のコールに隔離したNabla Containersのセキュリティ面での比較を紹介されました。

また、KubeCon場外でメンテナのミーティングも開催され、containerdとFirecracker(AWSが開発している軽量VMでコンテナを隔離するランタイム)のインテグレーションについても議論されたそうです。

KubeCon 報告2: About kanister
サイバーエージェント 長谷川 誠さん (@makocchi)

CI/CD, Kubernetes, and Databases: Better Togetherの内容が紹介されました。Cloud Nativeな環境でのdatabase運用のツラさとして、アプリケーションとは隔離されており、手動による変更が必要だったり、CI/CDに組み込まれておらず、手動によるデータのimportが必要だったり、データがすぐに古くなったり、Dev Opsとは別にDBAが面倒を見ないといけなかったりといった事が挙げられます。
すべてCI/CDに組み込めれば楽になるはずということで、開発されているのがKanister(ジェリカン; 燃料缶)です。これがあれば、データベースの運用に必要なData Capture/Export, Database Manipulation, Control Plane Integration (Kubernetesと密接したDBコントロール)が可能になるそうです。
KanisterはMongoDB, MySQL, PostgreSQL, elasticsearchをサポートしている。肝となる機能として、Kanister blueprint機能により様々なDB運用タスク(backupやrestoreなど)を定義し、CRDのyamlで管理(=配布が容易)できるそうです。

Docker Compose-on-Kubernetes
弊社 Kunal Kushwaha (@kunalkushwaha)

Compose on Kubernetesが紹介されました。Composeはマルチコンテナのアプリケーション構成をyamlで定義できるツールです。ComposeをKubernetes上で使えるようにするモチベーションとしては、general purposeなKubernetes APIのプリミティブを意識しなくても使えること、Kubernetesの設定を抽象化し、わかりやすくできることが挙げられます。

Compose on Kubernetesのアーキテクチャは、Compose ControllerとKubernetes API Aggregationを使ってCompose API Serverがetcdを制御する仕組みになっているそうです。

CompooseでKubernetesのパラメータをセットするデモ

DockerのCUIツール作った話
@gorilla0513 さん

dockerを楽に使うためのCUIツールdocuiが紹介されました。Goを勉強したい、コマンド操作が面倒、ターミナルから抜けたくないといったモチベーションから開発したそうです。 image, container, volume, networkといった一通りのdockerの機能をカバーし、 直感的にdockerが扱えるようにしたそうです。

ターミナルを抜けずにGUIライクな操作が行えるデモ

CNAB: Cloud Native Application Bundle
ZOZOテクノロジーズ 太田 航平さん (@_inductor_)

CNABはMicrosoft社とDocker社が主体となって開発を進めている分散アプリケーションをパッケージングするための規格です。Cloud Nativeな構成として、インフラの構成管理、コンテナのオーケストレータ、Helmなどのパッケージマネージャ、ランタイムなど色々なコンポーネントがある中でそれぞれの学習コストも高いといった現状がある中で、CNABを使うと 誰でも簡単にクラウドネイティブアプリケーションをインストールできるようにするというものです。

DuffleというCNABでバンドルしたアプリを管理するCLIも提供されているそうで、2018年にDocker社がリリースした新しいエコシステム、docker-appでもCNABをサポートしているそうです。

LT 1: GitLab Serverlessとその中身(KubeCon 報告LT)
野口 卓也さん (@tn961ir)

serverlessというとAWS Lambdaが代表的ですが、ベンダ非依存でserverlessをやっていきたいというモチベーションで開発されたのがGitLab Serverlessだそうです。GitLab Web/APIによるServerless(Knative)ラッパーとして動く仕組みになっているそうです。

LT 2: kubectlを実行してからetcdに書き込むまでに
NTTコミュニケーションズ 吉村 翔太さん (@yosshi_)

kubectlを使っていてどんな仕組みで動いているか中身が気になることはありませんか? Referenceを読めば書かれているものの結局はGoで書かれたソースコードを追うみたいなことがあると思います。そんなとき、役に立つのが、What happens when … Kubernetes edition!という中身が詳しく解説されたドキュメントだそうです。これを読めばKubernetesの中の動きが理解できるのでおすすめだそうです。

LT 3:Rancher’s New Multi-Tenant Prometheus Support
エーピーコミュニケーションズ 市川 豊さん (@cyberblack28)

RancherはKubernetes Clusterを容易に作成/インポート/管理するためのツールです。カタログ一覧から選択して、起動ボタンをクリックするだけでアプリケーションをデプロイできたり、個人で作成したカタログも登録できたりといった機能を備えています。
Rancher's New Multi-Tenant Prometheus Supportはこれまでカタログ機能からPrometheusとGrafanaのデプロイだったものが、Monitoring機能からPrometheusを選択することでワンクリックで利用できるようになったそうです。

LT 4: JKDv18.12でCFP採択までに考えたこと
リクルートテクノロジーズ 藤原 涼馬さん (@RyoMa_0923)

大きいイベントで喋ってみたいけどどうしたら?な人を後押ししたい。そこで、CFPを出すにあたり考えたことを事例として紹介されました。求められていることは何か、どんな発表内容にするか、実感を持ってもらえる話をするにはといった内容が共有されました。

スポンサーセッション
Forkwell (Grooves Inc.)さん

懇親会スポンサーのForkwell (grooves Inc.)さんは、経歴や成果をまとめて簡単にポートフォリオが作れるサービスを展開しており、Gitレポジトリを解析しアウトプットを可視化したり、スキルレベルを客観的に把握できる機能も提供されているそうです。
エンジニアの活動を応援する事業を展開されているということで、いろんなイベントのスポンサーをされているそうで、今回のミートアップの懇親会に食べ物や飲み物を振る舞っていただいていました。

おわりに

私たちNTTは、オープンソースコミュニティで共に活動する仲間を募集しています。ぜひ弊社 ソフトウェアイノベーションセンタ紹介ページや、採用情報ページをご覧ください。

--

--

Hiroyuki Makino
nttlabs
Writer for

XR Metaverse Researcher, R&D Engineer at NTT, Japan. Excited for the future of AR and what amazing people create.