docker
kubernetes
container
コンテナ
Moby

コンテナ関連コミュニティの動向 (2017年末・2018年1月)


過去の記事

2017年10月・11月・12月号 https://qiita.com/AkihiroSuda/items/de849b0428545baf1e55
2017年8月・9月号 https://qiita.com/AkihiroSuda/items/f2faffe401a0f2dd207d
2017年6月・7月号 https://qiita.com/AkihiroSuda/items/dc60347f1ad79a747fa2
2017年4月・5月号 http://qiita.com/AkihiroSuda/items/e4785014c6c50496f11b
2017年3月号 http://qiita.com/AkihiroSuda/items/746328a8ee59301807b6
Docker 1.13号 http://qiita.com/AkihiroSuda/items/d762b8cdc1d704f8efdf
Docker 1.12号 http://qiita.com/AkihiroSuda/items/ba3e118389e0a550c000

Kubernetes

Kubernetes 1.9

http://blog.kubernetes.io/2017/12/kubernetes-19-workloads-expanded-ecosystem.html

Workload API (GA), Windows対応 (beta),CSI対応 (alpha) など

Kubernetes対応版Dockerの公開

https://www.docker.com/kubernetes

今のところ,Docker EE, Docker CE for Mac, Docker CE for Windowsのみに対応しており,Docker CE for Linuxでは使えない.

CRI-containerd が containerd本体に合流

https://github.com/containerd/containerd/issues/1942

Dockerに依存しないCRIランタイムの1つであるCRI-containerdは,Kubernetes Incubatorとして,CNCF傘下のcontainerdとは別個に開発が進められてきたが,containerd本体に合流した.
両プロジェクトの開発者の距離が一層近づいた気がする.

Red HatによるCoreOS買収 ($250M)

https://www.redhat.com/en/about/press-releases/red-hat-acquire-coreos-expanding-its-kubernetes-and-containers-leadership
https://www.forbes.com/sites/janakirammsv/2018/01/30/red-hat-acquires-coreos-for-250-million/

Kubernetesの33個のSIG中,15個についてRed Hatがleadまたはco-leadとのこと.

Cisco Container Platform 発表

https://newsroom.cisco.com/press-release-content?type=webcontent&articleId=1908366

HyperFlexなどのCisco製品群やGCPとの連携が意識されている.
ネットワークはContiv.

OCI

Distribution Specプロジェクト立ち上げ

https://github.com/opencontainers/tob/pull/35

OCI Image Specでは,コンテナイメージを構成するtar layerやJSONのblobの標準仕様を定めているが,イメージ配信プロトコルについては,従来は敢えてスコープ外としてきた.

しかしながら,7月のOCI Image Spec v1.0.0発表後,イメージ配信プロトコルの標準化の議論が再度盛り上がった.

SUSEやHuaweiによる新しいプロトコルの提案もなされたものの,結局,現在de facto standardであるDocker Registry HTTP API v2.0をOCI Distribution Specとして標準化することが,Docker社・Red Hat社を中心としてTOBに提案された.

間もなく正式にプロジェクト発足の見込み.

その他

Eliot (IoT向けコンテナオーケストレータ)

https://medium.com/devopslinks/announcing-eliot-container-platform-for-iot-devices-ad071e1917fd
https://github.com/ernoaapa/eliot

mDNSを使って簡単にクラスタを構成できる.
containerdやLinuxKitなど,Moby関連の技術が活用されている.

SECCOMP_RET_USER_NOTIF

https://patchwork.kernel.org/patch/10199295/
https://www.youtube.com/watch?v=Lg3LU_oM-AU

seccompを使って,特定のシステムコールをユーザランドでhookする仕組み.
ユースケースとしては,コンテナ内での init_module(2)mknod(2) の安全なサポートが想定されている.

SECCOMP_RET_TRACE に似ているが, ptrace(2) を使わないので,ptrace(2) を使う他のソフトウェアに影響を及ぼさない.

是非mainlineにマージされて欲しい.

BuildKit (次世代 docker build )

https://github.com/moby/buildkit/pull/267

スケジューラが大きく書き直され,コンテナイメージのビルドに限らず,汎用的にDAGを実行可能となった.
ただし,スケジューラ自体のユニットテストの簡便化が目的であり,Apache Sparkの類を目指しているわけではない.

分散実行機能の実装も目指しているが,ワーカ間のキャッシュの転送などでまだ課題がある.

rootless containers (自分の取り組み)

root権限が無くてもrunc, containerd, BuildKitを一通り動くようにしてみた.
将来的にはKubernetesやDockerもroot権限無しで動くようにしたい.
hostからnetnsを分離する場合,vethの代わりにtapでユーザランドでパケット処理する必要があるなど,性能面でのオーバヘッドは大きい.
LXCみたいにSUIDビットつきバイナリを利用するなど,多少の妥協は必要そう