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
でコンテナを作成して無事に起動できました。
コマンドがほぼ変わらないのはいいですね!