LoginSignup
20
15

More than 5 years have passed since last update.

コンテナ関連コミュニティの動向 (2017年4月・5月)

Posted at

気になっているニュースを適当に書き連ねてみた.

DockerCon (4/17-20)

技術的な話題:

  • Moby Project (Docker : Moby ≒ RHEL : Fedora)
  • Linuxkit (コンテナ用Linuxディストリビューション.オプションでokernel(nested kernelのようなもの)も使える.)
  • Multi-stage build (Docker 17.05の新機能.Dockerfileにビルドコンテキスト(FROM行)を複数記述し,コンテキスト間でファイルを転送できる.)

など.

商用系の話題:

  • VISAやMetLifeでの商用導入事例
  • OracleのDocker Storeでの販売開始
  • レガシーアプリをコンテナ化するDocker社の事業

など.

https://github.com/docker/dockerhttps://github.com/moby/moby にリネームされたため,色々な誤解が広まっているが:

  • Dockerの製品名はDockerのまま
  • docker コマンドも docker コマンドのまま (moby コマンドは全然関係ない開発者向けツール)
  • DockerfileDockerfile のまま
  • CLIはMobyから除外され,Docker社が単独でmaintainする"product"となったものの,プロプラにはなっていない ( https://github.com/docker/cli )

詳しくは https://www.slideshare.net/AkihiroSuda/moby-project にまとめてみた.

Docker・Moby 新API

Docker daemonは,単一のRESTサービスから,複数のgRPCサービスへと分割される.
各gRPCサービスは,それ自体さえもがcontainerd上のコンテナとして動作する.

従来のREST APIをエミュレートするレイヤも用意されるので,既存のアプリケーションを書き直す必要はない.
ただ,互換性に関する問題が全く生じないとは言えないかも知れない.

Moby 新フォーラム

プロジェクトの方向性に関する議論は,githubからDiscourseに移った.

また,定例ミーティングが,毎日午前1時(JST)に,Docker Community Slack#moby-project チャネルで開かれるようになった.
誰でも参加できるが,Docker社以外の人はあまり参加していない?

Buildkit構想

docker build を再実装する構想.

  • low-levelなフォーマットとして「LLB」が提供される.LLBは人間が直接読み書きするものではない.
  • LLBの命令間の依存性は,DAGとして表現される.並行性の抽出などによる高速化が可能となる.
  • 従来のDockerfileは,LLBに変換されて実行される.今後,Dockerfile以外の上位言語も出てくるかもしれない?

OCI

runC, runtime spec, image specのいずれも,近いうちに1.0がリリースされそう.

ただ,x86_64 Linux以外のプラットフォームへの対応について,最終確認にもう少し時間がかかるかもしれない.

なお,今のところ,イメージ配布プロトコルはOCIのスコープ外となっているが,標準化へ向けての試みもある.
https://github.com/cyphar/parcel

CRI (Container Runtime Interface; Kubernetesの共通ランタイム仕様)

containerdがrktと同時(3/29)にCNCFに寄贈された.
また,4月中旬,Googleを中心として CRI-containerd プロジェクトが発足した.
CRI-containerdを用いることで,containerdをCRI準拠ランタイムとして用いることができる.
主要なCRI準拠ランタイムは,いずれもKubernetes Incubator下で開発されている.

image.png
(図中に示していないCRIランタイムとしては fraktidockershimもある)

CRI-Oとcontainerdとのスコープは殆ど重なっているが,違いとしては

  • CRI-O が直接CRIを実装しているのに対し,containerdはCRIを実装していない.別途CRI-containerdを要する.
  • CRI-O は Dockerからフォークしたライブラリ(containers/image, containers/storage) を用いているのに対し,containerdはほぼスクラッチから実装している.そのため,containerdのほうが拡張性が高い.Go 1.8のプラグインにも対応している.

CNI (Container Network Interface) のCNCF入り (5/23)

CSI (Container Storage Interface)

Mesosphere関係者が中心となって提案している,コンテナ向け永続ストレージの仕様.
まだ実装には至っていない模様.

Make containers kernel objects

namespace・cgroupsより高級なシステムコールをカーネルに追加する提案.
fd = container_create(name, flags), pid = fork_into_container(fd)など.

OCI runtime specがあるので,システムコールでしなくていいのでは,という意見が強そう.

Longhorn

Rancher Labsが開発したコンテナ向け分散iSCSIストレージ.
DockerConにてデモが展示されていた.

命名は,DockerCon開催地のテキサスにかけているのだと思われる.
https://ja.wikipedia.org/wiki/%E3%83%86%E3%82%AD%E3%82%B5%E3%82%B9%E3%83%AD%E3%83%B3%E3%82%B0%E3%83%9B%E3%83%BC%E3%83%B3

MicrosoftのDeis買収 (4/10)

Helm目的?

雑多 (4月以前の話)

  • Red Hatが,OpenCompose を立ち上げた.Docker Composeに類似したYAMLファイルで,Kubernetesのリソースを定義できる.Kompose と似ているが,Komposeと異なり,Docker Composeとはやや異なる独自フォーマットを採用している.

  • Linuxのxfsがreflinkをサポートした.コンテナのスナップショットドライバなどに使えるかも知れない.

20
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
15