ついにKubernetesからDockershimが正式に削除、Docker Engineのサポートが終了。今年最初のKuberenetes 1.24正式版がリリース
今回は「ついにKubernetesからDockershimが正式に削除、Docker Engineのサポートが終了。今年最初のKuberenetes 1.24正式版がリリース」についてご紹介します。
関連ワード (見直、見込、非推奨等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
オープンソースとして開発されているコンテナオーケストレーションツール「Kubernetes」の開発チームは、Kubernetes 1.24正式版のリリースを発表しました。今年最初のKubernetesのリリースとなります。
Happy release day and congratulations to all the Kubernetes contributors who worked hard on the 1.24 “Stargazer” release! Kubernetes users and contributors alike should check out the release blog for a quick look at what’s new in Kubernetes v1.24! https://t.co/0b8v4YfCax
— K8sContributors (@K8sContributors) May 3, 2022
Kubernetes 1.24の最大の変更点は、「Dockershim」が正式に削除されたことでしょう。Dockershimは2020年12月にリリースされたKubernetes 1.20から非推奨となっており、そこから約1年半が経過した本バージョンのリリースで正式に削除となりました。
参考:Dockershimを非推奨とした「Kubernetes 1.20」が正式リリース。Graceful node Shutdown機能がアルファ版で登場など
今後さまざまなKubernetes関連の実装やサービスでKubernetes 1.24へのアップデートが行われると見込まれます。Dockershimが非推奨になってから十分な時間が経過しているため多くのユーザーはすでにcontainerdやcri-oなどDocker Engine以外のコンテナランタイムに移行したと思われますが、もしもまだKubernetesでDocker Engineを使っている場合には、早急な見直しが必要でしょう。
Dockershimが削除されるまでの経緯
DockershimはKubernetesでコンテナランタイムとしてDocker Engineを利用するためのブリッジの役割をしていたインターフェイスでした。
もともとKubernetesはコンテナランタイムとしてDocker Engineをサポートしていました。というのも、Kubernetesが登場したときにはコンテナランタイムは事実上Docker Engineしか選択肢がなかったためです。
しかしその後、CoreOSのrktを始めとするDocker Engine以外のコンテナランタイムが登場したことで、Kubernetesは複数のコンテナランタイムをサポートするべく、コンテナランタイムとのインターフェイスとして「Container Runtime Interface」(CRI)というAPIを新たに定義します。
このCRIをサポートするコンテナランタイムであれば、Kubernetes上で利用できることになるのですが、Docker EngineはCRI以前から存在していたこともあり、CRIをサポートしていませんでした。
そこでKubernetesはCRIとDocker EngineのブリッジとしてDockershimを同梱し、CRI策定後も継続してDocker Engineをコンテナランタイムとしてサポートしてきました。
しかしすでにcontainerd、cri-o、gVisor、Firecrackerなど、さまざまなコンテナランタイムの選択肢が登場したことで、KubernetesとしてはDockershimの役割を終えるタイミングが来たと判断したわけです。