Successfully reported this slideshow.
Your SlideShare is downloading. ×

Dockerからcontainerdへの移行

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 36 Ad

Dockerからcontainerdへの移行

Download to read offline

NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です

https://ntt-techconf.connpass.com/event/241061/

訂正:
P2. .
誤:
```
Ship docker run -it --rm alpine
Run docker push ghcr.io/ktock/myalpine:latest
```
正:
```
Ship docker push ghcr.io/ktock/myalpine:latest
Run docker run -it --rm alpine
```

NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です

https://ntt-techconf.connpass.com/event/241061/

訂正:
P2. .
誤:
```
Ship docker run -it --rm alpine
Run docker push ghcr.io/ktock/myalpine:latest
```
正:
```
Ship docker push ghcr.io/ktock/myalpine:latest
Run docker run -it --rm alpine
```

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to Dockerからcontainerdへの移行 (20)

Advertisement

More from Kohei Tokunaga (15)

Recently uploaded (20)

Advertisement

Dockerからcontainerdへの移行

  1. 1. Copyright(c)2022 NTT Corp. All Rights Reserved. Dockerからcontainerdへの移⾏ ⽇本電信電話株式会社 ソフトウェアイノベーションセンタ 徳永 航平 須⽥ 瑛⼤ NTT Tech Conference 2022 (March 23rd)
  2. 2. Copyright(c)2022 NTT Corp. All Rights Reserved. Dockerの復習 2 ● docker composeで複数コンテナをまとめて管理 可能 ● コンテナ開発に有⽤な機能を提供するツール docker run -it --rm alpine docker build -t foo /dockerfile-dir docker push ghcr.io/ktock/myalpine:latest Build Ship Run ● Mac,WindowsではDocker Desktopを利 ⽤可能 Build(イメージ作成) Run(コンテナ実⾏) レジストリ Ship(コンテナ配布) イメージ 材料 コンテナ
  3. 3. Copyright(c)2022 NTT Corp. All Rights Reserved. Dockerに関する最近の話題︓Kubernetesでのdockershim⾮推奨化 3 kubectl apply runc スケジュールされたPodの管理 コンテナ実⾏状態の管理 Linux機能を使いコンテナの作成 ノード apiserver kubelet Pod割り当て コンテナ・イメージの管理 Docker (⾮推奨化) ● Kubernetes v1.23まではノード上で Dockerをコンテナランタイムとして利 ⽤可能 ● Kubernetes v1.20からkubeletから Docker利⽤は⾮推奨に ● Kubernetes v1.24ではDockerのサポ ート(dockershim)を削除予定 ○ 今後独⽴のツールとしてMirantis 社によってメンテされる ○ https://github.com/Mirantis/cri-dockerd
  4. 4. Copyright(c)2022 NTT Corp. All Rights Reserved. Dockerに関する最近の話題︓Docker Desktop有償化 4 ● Docker Desktop 有償化︓”professional use in larger businesses”対象 • https://www.docker.com/blog/updating-product-subscriptions/ ● GUI版のDocker Desktopは有償だが、Docker CLI + Docker EngineのVM 内での利⽤は有償化されない • https://www.docker.com/pricing/faq ■ “Can I just install the Docker CLI instead of using Docker Desktop?”
  5. 5. Copyright(c)2022 NTT Corp. All Rights Reserved. 5 containerdによるコンテナ管理
  6. 6. Copyright(c)2022 NTT Corp. All Rights Reserved. containerdによるコンテナ管理 6 ● オープンソースなコンテナランタイム(CNCF graduatedプロジェクト) ● Docker/Moby、Kubernetesサービス(EKS、AKS、GKE)で使われるな ど、採⽤が拡⼤している https://github.com/containerd/containerd 引⽤元︓https://sysdig.com/blog/sysdig- 2021-container-security-usage-report/ (2021年1⽉) 引⽤元︓ https://www.cncf.io/report s/cncf-annual-survey-2021/ (2022年2⽉)
  7. 7. Copyright(c)2022 NTT Corp. All Rights Reserved. containerdとDocker、Kubernetesの関係 7 コンテナ管理運⽤基盤 Linuxカーネル コンテナ開発ツール コンテナ管理運⽤基盤 Kubernetes 従来 分散環境上のコンテナ管理 ノード上のコンテナ管理 containerd コンテナ実⾏状態の管理 runc カーネルの機能を使いコンテナ作成 コンテナ開発ツール Linuxカーネル containerd 汎⽤のコンテナ管理フレームワーク runc カーネルの機能を使いコンテナ作成 nerdctl (containerdの⼀部) コンテナ作成/実⾏/配布など 開発⽀援機能の提供 Kubernetes 分散環境上のコンテナ管理 ⾼速rootless、eStargzなど先進 機能を備えたDocker互換ツール Docker 近年 containerd だけで Docker の機能をほぼカバー containerdを直接利⽤ Docker
  8. 8. Copyright(c)2022 NTT Corp. All Rights Reserved. nerdctl︓Docker互換なcontainerd⽤CLI 8 ● Docker⾵のUI/UX(composeもサポート) https://github.com/containerd/nerdctl ● 先進機能 ● ⾼速イメージpull(eStargz) ● P2Pイメージ共有(IPFS) ● 暗号化イメージ (OCIcrypt) ● イメージへの署名/検証(cosign) ● ⾼速rootless(bypass4netns) nerdctl CLI containerd API nerdctl run -it --rm alpine nerdctl build -t foo /dockerfile-dir nerdctl push ghcr.io/ktock/myalpine:latest nerdctl compose up
  9. 9. Copyright(c)2022 NTT Corp. All Rights Reserved. containerdによるKubernetesでのコンテナ管理 9 ● 各ノード上でコンテナランタイムと してcontainerdを利⽤可能 ● kubeletはContainer Runtime Interface(CRI)経由で containerdを直接利⽤ ● EKS、AKS、GKEなどマネージド Kubernetesサービスでも利⽤可能 kubectl apply runc スケジュールされたPodの管理 Pod、コンテナ、イメージの管理 Linux機能を使いコンテナの作成 ノード apiserver kubelet CRI Pod割り当て
  10. 10. Copyright(c)2022 NTT Corp. All Rights Reserved. GKEでのcontainerdへの移⾏ 10 https://cloud.google.com/kubernetes-engine/docs/deprecations/docker-containerd https://cloud.google.com/kubernetes-engine/docs/how-to/migrate-containerd ● Dockerベースのノードイメージは1.24以降でサポートされなくなる ● containerdベースのノードイメージ(Linuxノードでは1.19、Windowsでは1.21 からデフォルト)に移⾏する必要がある Dockerノードイメージ Containerdノードイメージ Dockerを含むContainer-Optimized OS (cos) Containerdを含むContainier-Optimized OS (cos_containerd) Dockerを含むUbuntu(ubuntu) Containerdを含むUbuntu(ubuntu_containerd) Dockerを含むWindows Server LTSC(windows_ltsc) Containerdを含むWindows Server LTSC(windows_ltsc_containerd) Dockerを含むWindows Server SAC(windows_sac) Containerdを含むWindows Server SAC(windows_sac_containerd) ● 移⾏作業のためのスクリプト`find-nodepools-to-migrate.sh`が提供されている • クラスタを解析して、移⾏のための推奨コマンドを⽰してくれる https://github.com/GoogleCloudPlatform/k8s-node-tools/blob/HEAD/migrating-to-containerd/find-nodepools-to-migrate.sh ● 推奨されたコマンド(`gcloud container clusters upgrade`)を使ってcontainerdに 移⾏可能
  11. 11. Copyright(c)2022 NTT Corp. All Rights Reserved. EKSでのcontainerdへの移⾏ 11 https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/dockershim-deprecation.html https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/eks-optimized-ami.html#containerd-bootstrap ● Amazon Linux AMIは1.21現在でDockerがデフォルトランタイム ● バージョン1.23以降、含まれるランタイムはcontainerdのみになる ● 1.21現在までのAMIでも、ブートストラップフラグ` --container-runtime containerd`でcontainerdノードを利⽤可能 apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code managedNodeGroups: - name: my-nodegroup ami: eks-optimized-AMI-ID overrideBootstrapCommand: | #!/bin/bash set -eu -o pipefail /etc/eks/bootstrap.sh my-cluster --container-runtime containerd ● あるいは、ランタイムとしてcontainerdを利⽤しているBottlerocket AMIまたはEKS Fargateに移⾏するのも可 ● WindowsノードでもKubernetes 1.20より新しいバージョンでcontainerdを選択可能 ○ https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-windows-ami.html#containerd-bootstrap-windows
  12. 12. Copyright(c)2022 NTT Corp. All Rights Reserved. AKSでのcontainerdへの移⾏ 12 https://docs.microsoft.com/en-us/azure/aks/cluster-configuration#container-runtime-configuration ● LinuxノードではKubernetes v1.19からcontainerdがランタイムとして使われている ● AKSのバージョンを`az aks upgrade`などで1.19以降にアップグレードすることで Linuxノードについてはcontainerdへ移⾏可能 ● とはいえすでに1.19以前はEOLのため、サポートされているAKS全バージョンでLinux ノードではcontainerdが使われていることになる ● Windowsノードでは1.20からcontainerdを利⽤可能。1.22以前のクラスタでは Dockerがデフォルト。1.23からはcontainerdがデフォルトになる。 ○ `az aks nodepool upgrade`などで移⾏可能︓https://docs.microsoft.com/en-us/azure/aks/windows- container-cli#optional-using-containerd-with-windows-server-node-pools
  13. 13. Copyright(c)2022 NTT Corp. All Rights Reserved. kubeadmでのcontainerdへの移⾏ 13 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#initializing-your-control- plane-node ● ノードにDockerが稼働していればcontainerdも既に稼働している ● kubeadm(v1.23現在)はDockerを優先的に使⽤するので、明⽰的にcontainerdのソケ ットパス`--cri-socket=/run/containerd/containerd.sock`を指定する必要がある sudo kubeadm reset sudo kubeadm join 192.168.56.120:6443 --cri-socket=/run/containerd/containerd.sock --token <省略> --discovery-token-ca-cert-hash <省略> ● ここで、containerdのconfig(/etc/containerd/config.toml)に`disabled_plugins = [“cri”]`が指定されてないことを要確認
  14. 14. Copyright(c)2022 NTT Corp. All Rights Reserved. FAQ: イメージを作り直す必要はあるか︖ 14 A. No。既存のコンテナイメージがそのままcontainerdで使える。 標準準拠ランタイム Docker Docker BuildKit Kaniko イメージビルダ etc… etc… ● イメージには標準仕様があるのでcontainerd移⾏後も引き続き実⾏可能 標準準拠イメージ
  15. 15. Copyright(c)2022 NTT Corp. All Rights Reserved. FAQ: レジストリはそのまま使えるか︖ 15 A. Yes。ただしレジストリミラー等の設定は移⾏が必要。 ● レジストリには標準仕様があるのでcontainerd移⾏後も引き続き利⽤可能 ● ただし、`/etc/docker/`にレジストリクライアント関連の設定(ミラーや証明書など) をしていた場合は、`/etc/containerd/`で設定しなおす必要がある • 設定⽅法(containerd >= 1.5)︓ https://github.com/containerd/containerd/blob/v1.6.1/docs/hosts.md 標準準拠レジストリ 標準準拠ランタイム Docker pull Docker BuildKit Kaniko イメージビルダ push etc… etc… 標準準拠イメージ
  16. 16. Copyright(c)2022 NTT Corp. All Rights Reserved. FAQ: ノードの作り直しは必要か︖ 16 ● GKE/EKS/AKSでは前述の通りノードの更新が必要。 ● kubeadmでは、厳密にはNo。運⽤上はYes。 • Dockerが稼働していればcontainerdも稼働している • しかしDockerを維持する理由がないならばDocker無 しでノードを作り直した⽅が良い containerd Docker Kubernetes (kubelet) runc クラウドの場合︓Yes。 kubeadmの場合︓厳密にはNo。運⽤上はYes。 A.
  17. 17. Copyright(c)2022 NTT Corp. All Rights Reserved. FAQ: ノードのデバッグに`docker`コマンドは使い続けられるか︖ 17 A. No。代わりにnerdctlが使える。 $ sudo nerdctl --namespace=k8s.io ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1fe5fe717d05 k8s.gcr.io/pause:3.5 "/pause" 9 minutes ago Up k8s://kube-system/etcd-ktock 226a45b850fa k8s.gcr.io/kube-controller-manager:v1.23.4 "kube-controller-man…" 9 minutes ago Up k8s://kube-system/kube-controller-manager-ktock/kube-controller-manager ・・・ `--namespace=k8s.io`を指定するとKubernetesのコンテナをDocker同様のUIでデバッグ可能 ● 他にもノード上で利⽤可能なCLIはあるが、独特なUIに慣れが必要 • ctr: containerdに付属するデバッグ専⽤CLI。containerd APIに⾁薄した操作(e.g. snapshots、contents)や、containerd⾃体のデバッグに有⽤。 • https://github.com/containerd/containerd/tree/main/cmd/ctr • crictl: Kubernetes SIG Nodeで開発されるCRI⽤CLI。YAMLファイルでPod,コンテ ナ,イメージを操作可能 • https://github.com/kubernetes-sigs/cri-tools/blob/master/docs/crictl.md
  18. 18. Copyright(c)2022 NTT Corp. All Rights Reserved. FAQ: ノードのデバッグに`docker`コマンドは使い続けられるか︖ 18 $ mkdir -p /tmp/ctx && cat <<EOF > /tmp/ctx/Dockerfile FROM alpine:3.15 CMD [ "sh", "-c", "while true ; do echo hello ; sleep 1 ; done" ] EOF $ sudo nerdctl --namespace k8s.io build -t foo /tmp/ctx $ kubectl apply -f - <<EOF apiVersion: v1 kind: Pod metadata: name: foo spec: containers: - name: foo image: foo imagePullPolicy: Never EOF $ kubectl logs foo hello `nerdctl build`を使ってノード上で イメージをビルドして実⾏することも可能 A. No。代わりにnerdctlが使える。
  19. 19. Copyright(c)2022 NTT Corp. All Rights Reserved. FAQ: ログ管理に影響はあるか︖ 19 A. ログ基盤がDocker依存の設定をもつ場合は修正の必要あり。 ● `/var/log/pods`のログフォーマットはDockerとCRIランタイムで異なる ● ⾮マネージドなログ基盤で、Docker⽤のパーサしか設定されていなかったり、Docker APIに依存してログ収集しているなど、Docker依存の設定がある場合は変更が必要 {"log":"Log line is here¥n","stream":"stdout","time":"2019-01-01T11:11:11.111111111Z"} https://docs.docker.com/config/containers/logging/json-file/ 2016-10-06T00:17:09.669794202Z stdout P log content 1 https://github.com/kubernetes/kubernetes/blob/9a8defda15e4c34e9c1989 75968d9619f48a0786/pkg/kubelet/kuberuntime/logs/logs.go#L125-L169 Dockerのログフォーマット CRIランタイム(containerd含)のログフォーマット
  20. 20. Copyright(c)2022 NTT Corp. All Rights Reserved. FAQ: Pod内で`docker`コマンドは引き続き利⽤可能か︖ 20 ● GKE: Dockerに直接依存しないようワークロードをアップデートすべき。 • https://cloud.google.com/kubernetes-engine/docs/deprecations/docker-containerd#impact_of_migrating ● EKS: Docker socketをマウントするアプリケーションでは変更が必要になる。 • https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/dockershim-deprecation.html ● AKS: Dockerは利⽤不可。 • https://docs.microsoft.com/en-us/azure/aks/cluster-configuration#containerd-limitationsdifferences ● kubeadm: ノード上でCRIランタイムとしてcontainerdを使いつつ、Dockerも稼働させ ておけば引き続き可能。 Pod内でDockerデーモンを稼働させる場合︓Yes ノード上のDockerに依存する場合︓クラウドでは移⾏が推奨されている。 kubeadm利⽤時はYes。 A.
  21. 21. Copyright(c)2022 NTT Corp. All Rights Reserved. Cluster FAQ: Pod内で`docker`コマンドは引き続き利⽤可能か︖ 21 BuildKit buildctl BuildKit BuildKit BuildKit Service BuildKit buildctl BuildKit BuildKit BuildKit buildctl + BuildKit kubectl Deployment+Service StatefulSet Job ランダムロードバランシング。 レジストリを介したキャッシ ュ共有により⾼速なビルドが 可能。 クライアント側でのロードバ ランシング。consistent hashを使えば効率的にロー カルキャッシュを活⽤可能。 ワンショットなビルド実⾏。 BuildKitデーモンの稼動が不 要。ローカルキャッシュはビ ルドのたびに削除。 Cluster Cluster Kubernetes上でのビルドにはBuildKitの利⽤も有⽤ https://github.com/moby/buildkit/tree/master/examples/kubernetes
  22. 22. Copyright(c)2022 NTT Corp. All Rights Reserved. 22 containerd・nerdctlの持つ様々な機能
  23. 23. Copyright(c)2022 NTT Corp. All Rights Reserved. containerd・nerdctlの持つ様々な機能 23 ● nerdctl コマンドの使い⽅は、docker コマンドの使い⽅とだいたい同じ ● 単に docker コマンドの置き換えを⽬指しているわけではなくて、コンテナ ランタイム関連の新機能を実験、普及展開するためのプラットフォームとし て開発している ○ ⾼速イメージpull(eStargz) ○ P2Pイメージ共有(IPFS) ○ 暗号化イメージ (OCIcrypt) ○ イメージへの署名/検証(cosign) ○ ⾼速rootless(bypass4netns)
  24. 24. Copyright(c)2022 NTT Corp. All Rights Reserved. ⾼速なイメージPull(eStargz) 24 ● Lazy pulling: イメージのpull完了を待たずにコンテナを起動可能 ● eStargz: OCI仕様に後⽅互換のlazy pulling可能なイメージ形式 • lazy pulling⾮対応なランタイムでも通常のイメージとして扱える 0 10 20 30 40 50 estargz estargz-noopt legacy Start up time of python:3.7 (print “hello”) pull create run [sec ] Figure from “Faster Container Image Distribution on a Variety of Tools with Lazy Pulling - Kohei Tokunaga & Tao Peng. KubeCon+CloudNativeCon North America 2021. https://sched.co/lV2a “ $ nerdctl –-snapshotter=stargz run –it ghcr.io/stargz-containers/python:3.9-esgz https://github.com/containerd/nerdctl/blob/master/docs/stargz.md nerdctl Kubernetes
  25. 25. Copyright(c)2022 NTT Corp. All Rights Reserved. P2Pイメージ共有(IPFS) 25 nerdctl push ipfs://ubuntu:20.04 peer peer IPFS nerdctl run ipfs://bafkreicq4dg6nkef5ju422ptedcwfz6kcvpvvhuqeykfrwq5krazf3muze ● P2Pデータ共有プロトコルのIPFSを使ってコンテナイメージをP2P共有可能 ● nerdctl各コマンドで”ipfs://CID“の形式でIPFS上のイメージを利⽤可能 ● eStargzのlazy pulling、OCICryptなども依然利⽤可能 Experimental https://github.com/containerd/nerdctl/blob/master/docs/ipfs.md nerdctl Kubernetes ※Kubernetesではnerdctl付 属のOCI互換プロキシを⽤いる
  26. 26. Copyright(c)2022 NTT Corp. All Rights Reserved. イメージ暗号化・復号化(OCICrypt) 26 ● キーペアを⽤いて、イメージの暗号化が可能 ● 暗号化したイメージはcontainerdでPullして復号、実⾏できる Registry image image 公開鍵 秘密鍵 イメージの暗号化 イメージの復号 nerdctl image encrypt nerdctl image decrypt https://github.com/containerd/nerdctl/blob/master/docs/ocicrypt.md nerdctl Kubernetes
  27. 27. Copyright(c)2022 NTT Corp. All Rights Reserved. イメージ署名・検証(cosign) 27 ● 署名を⽤いて、イメージが改竄されていないかを検証できる ● Notaryに似ているが、最近はcosignが流⾏りつつある Registry image 秘密鍵 公開鍵 イメージの署名 イメージの検証 nerdctl push --sign=cosign nerdctl pull --verify=cosign https://github.com/containerd/nerdctl/blob/master/docs/cosign.md nerdctl Kubernetes ※Kubernetesではcosign付属 のadmission controllerを使⽤ image
  28. 28. Copyright(c)2022 NTT Corp. All Rights Reserved. ⾼速rootless(bypass4netns) 28 ● rootlessコンテナでもrootfulと同等以上のNW性能を得られる ● rootlessコンテナに従来存在したユーザ空間TCP/IPスタック(slirp4netns)のネットワー クオーバヘッドを回避 • SECCOMP_IOCTL_NOTIF_ADDFD で、bind(2) や connect(2) をホスト側にバイパ スしている Experimental 引⽤元︓”インターンレポート: RootlessコンテナのTCP/IP⾼速化”. https://medium.com/nttlabs/accelerating-rootless-container-network-29d0e908dda4 https://github.com/containerd/nerdctl/blob/master/docs/rootless.md nerdctl
  29. 29. Copyright(c)2022 NTT Corp. All Rights Reserved. その他 29 ● 完全にread-onlyなmountが出来る: nerdctl run -v /mnt:/mnt:rro ○ docker run -v /mnt:/mnt:ro だと、/mnt/usb とかread-only にならない ● nerdctl runの--netは複数指定できる (コンテナを複数ネットワークに同時接続できる) ○ DockerでもComposeでなら同じことが出来るが、docker runでは出来ない ● FreeBSD コンテナ (jails) も少しだけ動く ○ ネットワークには未対応 ● CNIやOCIなどの標準への準拠度が⾼い ○ nerdctl はCNI対応、docker は未対応 ○ nerdctl save/nerdctl load はOCI Image SpecとDocker Image Specの両⽅対応、 docker save/docker load はOCI Image Spec未対応
  30. 30. Copyright(c)2022 NTT Corp. All Rights Reserved. containerdに移⾏すると出来なくなること 30 ● Kubernetesノード上での docker コマンド使⽤ ○ nerdctlを代わりに使⽤できる ● Docker REST API ○ Docker REST API に頼るアプリは動かない ○ docker コマンドを直に exec するアプリは、nerdctl を exec するように書き換 えるだけで動く ● Docker Swarm ○ コンテナオーケストレーションにはKubernetesやNomadを利⽤できる nerdctl –-namespace=k8s.io build -t foo:1.2.3 .
  31. 31. Copyright(c)2022 NTT Corp. All Rights Reserved. 31 containerd・nerdctlへの移⾏⽅法 ※Kubernetesの場合の移⾏⽅法は前述 (スライド10-13)
  32. 32. Copyright(c)2022 NTT Corp. All Rights Reserved. containerd・nerdctl への移⾏(linux) 32 https://github.com/containerd/nerdctl/releases $ sudo systemctl enable --now containerd $ sudo nerdctl run -d --name nginx -p 80:80 nginx:alpine $ containerd-rootless-setuptool.sh install $ nerdctl run -d --name nginx -p 8080:80 nginx:alpine Rootful Rootless tarballにcontainerd、nerdctl、runc等のバイナリ⼀式が全て含まれている (/usr/local などのパスに展開)
  33. 33. Copyright(c)2022 NTT Corp. All Rights Reserved. containerd・nerdctl への移⾏(macOS) 33 ● Lima (macOS⽤のWSL2のようなもの)に containerd・nerdctl も付属 ● ホストのホームディレクトリが、ゲストからも⾒える ● ゲストのlocalhostに、ホストからもlocalhostとしてアクセスできる https://github.com/lima-vm/lima $ brew install lima $ limactl start $ lima nerdctl run …
  34. 34. Copyright(c)2022 NTT Corp. All Rights Reserved. containerd・nerdctl への移⾏(macOS) 34 ● Rancher Desktop にも containerd・nerdctl が付属 ○ 内部的にはやはりLima ○ GUI付き ○ https://rancherdesktop.io/
  35. 35. Copyright(c)2022 NTT Corp. All Rights Reserved. containerd・nerdctl への移⾏(Windows) 35 ● LinuxコンテナはWSL2上で動かせる ● Rancher Desktop for Windows にも containerd・nerdctl が付属 ● 内部的にはWSL2 ● Windowsネイティブなコンテナにも対応 (nerdctlではexperimental) ● https://github.com/containerd/nerdctl/issues/28
  36. 36. Copyright(c)2022 NTT Corp. All Rights Reserved. まとめ 36 ● Docker から containerd への移⾏が進んでいる ● kubeadmの場合は、--cri-socket=/run/containerd/containerd.sock を渡すだけ ● 従来の Docker イメージはそのまま使える ● docker コマンドの代わりに nerdctl (contaiNERD CTL) が使える ○ ただの docker コマンドの置き換えではなく、いろいろな新機能がついている (⾼速イメージPull、暗号化、...) ○ macOS でもすぐ始められる (Windowsの場合はWSL2) $ brew install lima $ limactl start $ lima nerdctl run …

×