Kubernetes v1.24で DockerShim が廃止になりdockerコマンドが使えなくなったので、Rancher Desktop でcontainerdを「簡単」に使ってみる。

Kubernetes v1.24で DockerShim が廃止になりdockerコマンドが使えなくなったので、containerd を「簡単」に使ってみる。

Kubernetes v1.23からv1.25に移行する必要が出てきました。 docker コマンドが使えなくなる代わりに containerd nerdctl を使う必要が出てきました。 下剋上とも言わんばかりに、containerd がCLIとして活躍する場ができたために、ついにDockerもその立場を追われているようですね。 ということで、containerd を簡単に使える、Rancher Desktop を早速インストールしていきたいと思います。

https://speakerdeck.com/ktock/dockerkaracontainerdhefalseyi-xing?slide=7

Rancher Desktopをインストール

Rancher Desktopをインストールするために下記のサイトから、自分の使用しているMacのCPUに合わせたReleaseをダウンロードします。

Releases · rancher-sandbox/rancher-desktop · GitHub

私の場合は、Macインテルモデルですので下記の macOS x86_64 をダウンロードしました。

dmg ファイルなのでインストールは非常に簡単ですね。

Rancher Desktop の初期設定

早速、アプリケーションにいれた Rancher Desktopを起動してみます。

自分の環境で、Kubernetesは使いたいのでここはチェックを入れておきます。

かなりアップデートが入っていますね。

とりあえず安定版の stable を入れることにします。

次の containerd か dockerd (moby) を選ぶ必要があります。

Kubernetes 1.24でDockerShimが廃止になり、containerd のランタイムを使用する必要があるため、私は、containerd を選ぶ事にしました。

containerd を選択すると、Docker CLI の代わりに nerdctl コマンドを使うことになります。

それぞれの違いについては、NTTの須田と徳永 (共同執筆)様の記事が大変参考になったので引用させていただきます。 medium.com

containerdはCRIを通じてKubernetesのランタイムとして動作できるだけでなく、 docker コマンドとほぼ同じ使い勝手の nerdctl (contaiNERD CTL)コマンドもsubproject (non-core)として提供しています。 docker run に相当する nerdctl run 、 docker build に相当する nerdctl build 、 docker-compose up に相当する nerdctl compose up などの機能を取り揃えています。

nerdctl は、OCIランタイムを使用してDockerコンテナを実行するために作られたコマンドであり、docker コマンドの代替として開発されてるようです。 しかも、nerdctl は、Go言語で開発されたオープンソースプロジェクトで、docker よりも軽量で高速。 権限周りも root権限なしで使えるのもいいですね。 また、 docker-compose up に相当する nerdctl compose up もあるみたいでほとんど問題なさそう。

そこまで抵抗なくコマンドも使えそうですね!

Configure PATH は、Automatic でOK。シェルに合わせてPATHを変えてくれるみたいです。

最後にRancher Desktopを起動!

この画面では「OK」を押して起動しました。

Slackからも使えるみたいですけど、今回はそこまで必要としていないのでまた機会がある時にしましょう。

 nerdctl run redis
1:C 11 May 2023 07:00:48.716 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo

でコンテナを作成して無事に起動できました。

コマンドがほぼ変わらないのはいいですね!

Rancher Desktop