Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Docker との比較で知る/Quiz! Singularity

Docker との比較で知る/Quiz! Singularity

Singularity Meet-up Japan #1 May 16, 2018

ryo nakamaru

May 16, 2018
Tweet

More Decks by ryo nakamaru

Other Decks in Science

Transcript

  1. 中丸 良 @pottava • AWS Certified Solutions Architect, DevOps Engineer

    - Professional • Google Certified Professional - Cloud Architect • CTO at SUPINF Inc. / Solutions Architect at Rescale, Inc. • クラサバ ERP → Web アプリ → クラウド → 機械学習 / HPC My profile !2
  2. (比較のために)Docker . • 思想:Build, Ship, and Run any app, Anywhere

    • 主に名前空間を使いアプリケーションの実行コンテキストを他から分離 • ユーザも利害関係者も増え、標準化が進み本番利用も活発 ‣ https://www.opencontainers.org/ !6
  3. !7 Solomon Hykes “ɹɹɹɹɹɹɹɹɹ ” To program, you need tools.

    If these tools are not designed to be accessible and useful to programmers of all levels of expertise and specialization, then as an industry we failed. “”
  4. VirtualMachines !8 ハイパーバイザ ホスト OS ホスト OS dockerd containerd application

    A … Docker ゲスト OS Y ゲスト OS Z VM と Docker コンテナ application B application C runc application A runc application B runc application C
  5. VirtualMachines !9 ハイパーバイザ ホスト OS ホスト OS dockerd containerd application

    A … Containers ゲスト OS Y ゲスト OS Z VM と Docker コンテナ application B application C runc application A runc application B runc application C リソースの分離が VM ほど厳密ではない • Docker コンテナは ホストのカーネルで 走る • ユーザが何も考えないと root ユーザで動く • ホストのリソースをほぼ 直接利用 する ⇨ 各種設定で縛っていく必要あり、あうー・・
  6. VirtualMachines !10 ハイパーバイザ ホスト OS ホスト OS dockerd containerd application

    A … Docker ゲスト OS Y ゲスト OS Z VM と Docker コンテナ application B application C runc application A runc application B runc application C しかもこいつは root で動く..
  7. システムコールを制限するには !11 頑張って strace でトレースしてからの〜・・ • --security-opt seccomp での制御 •

    --cap-add / --cap-drop ‣ それぞれの Capability で制御できるシステムコールとにらめっこ え、つらくない?
  8. Singularity • http://singularity.lbl.gov • Singularity = Docker のいいところ(特に再現性)+ HPC サポート

    ‣ 基本思想は一緒: Build, Ship, and Run any app, Anywhere ‣ 高性能ハードウェアそのまま、ジョブスケジューラもそのまま • DockerHub のように公式レジストリもあるよ ‣ https://singularity-hub.org !16
  9. Ubuntu 16.04 !19  $ sudo apt-get update  $ sudo apt-get

    -y build-essential libarchive-dev python  $ ./configure --prefix=/usr/local  $ make  $ sudo make install
  10. mac での最短お試し環境 !20  $ docker run --rm -it --privileged -e

    UID=$(id -u) -e GID=$(id -g) \    -v /var/run/docker.sock:/var/run/docker.sock \    -v $(pwd):/home/singularity -v /tmp:/tmp \    -w /home/singularity \    pottava/singularity:2.5 sh
  11. ディレクトリのマウント `singularity exec some.simg ls . /tmp` で見えるものは? 1. イメージ内のカレントディレクトリと

    /tmp 以下 2. ホスト側のカレントディレクトリと /tmp 以下 3. イメージ内のカレントディレクトリとホスト側の /tmp 以下 4. ホスト側のカレントディレクトリとのイメージ内の /tmp 以下 !22
  12. リソースの競合 すでに`singularity run nginx.simg`(Web サーバ)を実行している中 別端末から`singularity run nginx.simg` すると何が起こる? 1.

    ポートが動的にアサインされ、正常に動作する 2. プロセスが起動せずに落ちる 3. プロセスが起動してしばらくすると必ず落ちる 4. プロセスが起動し、落ちるかどうかはアプリ次第 !24
  13. プロセス 1 `singularity exec some.simg sleep 100` を実行中、 ホスト側から `ps

    a` で見えるコマンドは? 1. `singularity exec some.img sleep 100` 2. `sh -c “sleep 100“` 3. `sleep 100` 4. 見えない !26
  14. プロセス 1 正解:`sleep 100` Singularity が内部的に使う execv で Singularity プロセスそのものが

    exec や run で指定したコンテナ内部のプロセスに置き換えられます。 Docker では実行したコマンドそのままがプロセスとして走ります。 !27   $ ps   PID USER COMMAND   29619 ubuntu docker run --rm -it alpine:3.7 sleep 30
  15. プロセス 2 `singularity exec some.simg ps | wc -l` が返すのは?

    1. `ps | wc -l`と同じ値 2. `ps a | wc -l`と同じ値(自分以外のユーザーのプロセスも表示) 3. `ps x | wc -l`と同じ値(制御端末のないプロセスの情報も表示) 4. どれでもない !28
  16. プロセス 2 正解:`ps ax | wc -l`+ 1 した値 自分以外のユーザのプロセスも制御端末のないプロセスも表示され

    プロセス ID もホスト側のものがそのまま見えます。 Docker の場合はプロセスも隔離されるのでこうなります。 !29   $ docker run alpine:3.7 ps   PID USER TIME COMMAND    1 root 0:00 ps
  17. Containerize your app! !30 • クラウド / コンテナ を強みにした受託開発運用、コンサルティング •

    2015 年から Docker の本番運用を開始・豊富な CI / CD 事例 • スピンフ、と読みます・・ We’re hiring!!!
  18. ご静聴ありがとうございました 参考文献: • Containers for Science, Reproducibility and Mobility SINGULARITY

    P2      https://www.intel.com/content/dam/www/public/us/en/documents/presentation/hpc- containers-singularity-advanced.pdf • Singularity - Google Groups         https://groups.google.com/a/lbl.gov/forum/#!forum/singularity