DockerがKubernetesのコードから消滅した理由、歴史的背景、ツールごとの対応方法総まとめ:Cloud Nativeチートシート(16)
Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する連載。今回は、Kubernetes 1.24でDockerサポートが削除された背景と対応方法について解説する。
2020年12月8日。ノストラダムスは予言した。「DockerはいずれKubernetesから消え去るだろう」と。そしてv1.20で非推奨になった。予言から1年5カ月たった2022年5月3日のv1.24のリリースによって、ついにDockerはKubernetesのコードから消滅した。一体これから何が起こるのだろうか……。
Kubernetes信者の読者には既知の事実かもしれないが、改めてKubernetesに何が起こったのか、そしてわれわれはどうしていけばよいのか――。Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する本連載「Cloud Nativeチートシート」。今回は、その真相を究明する。
目次
ついに削除されたDockerサポート
Kubernetes 1.24でKubernetesからDockerをサポートするコードが削除されたことで、KubernetesやDockerが流行している今、次のように不安を抱えている方もいるかもしれません。
- え? KubernetesでDockerが使えなくなるの? 何だか分からないけど不安
- 公式サイトで「Don't Panic: Kubernetes and Docker」という記事を見たが、「パニックになるな」と言われると余計パニックになる
- Docker好きだったのに、別のランタイムに変えないといけないのかな? そもそも自分が使っている環境に影響があるのか分からない
- v1.20のリリースノートでdockershimが非推奨になったことは既に知っていたけど、「まだまだ先のことだ」と高をくくっていた。焦る
本稿は、このような悩みや漠然とした不安感を解消するために執筆しました。読者の皆さんが気になる観点が書かれた章をつまみ食いしていただければ幸いです。なお、既に公開されている情報のまとめ的な記事になっているので、既にご存じの方はご了承ください。
KubernetesのDockerサポートの歴史と削除の背景
KubernetesのDockerサポートの歴史と、「なぜ削除されたのか」の背景を見ていきます。
「Docker Engine」(別称「Docker CE」)はKubernetesで最初にサポートされたコンテナランタイム(=コンテナを実行する実行環境)でした。当時コンテナランタイムといえば、ほぼDockerのみだったので※1、当初はKubernetesにハードコーディングされていました。
※1:厳密には「OpenVz」「LXC」など先行するコンテナランタイムもありました。
その後、Docker Engine以外のコンテナラインタイムが発表され、KubernetesにDocker Engine以外のコンテナランタイムを組み込みやすくするために、CRI(Container Runtime Interface)としてコンテナとKubernetesのインタフェースが標準化されました。
それに伴い、Kubernetesのコードに直接組み込まれていたDocker Engineをサポートするコードは、「dockershim」というブリッジによってCRIを介してDocker Engineを利用するように変更されました。その後、Docker Engineも内部のリファクタリングが進み、Docker Engineの中で「containerd」というコンテナランタイムを利用し、containerd経由でコンテナを操作するように変更されました(図1の上側)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- MicrosoftによるMirantis Container Runtimeのサポートは「2022年9月」に終了
MicrosoftはWindows Server 2016でWindowsコンテナのサポートを開始し、コンテナランタイムとしてのDocker Enterprise Edition(現在のMirantis Container Runtime)のライセンスと、Microsoftによるサポートを提供してきました。このランタイムのMicrosoftによる提供とサポートは2022年9月末で終了し、Mirantisに完全に移管されます。 - Azure Kubernetes ServiceのWindows Serverノードで「containerd」が正式にサポート
Microsoftは2022年1月20日、2021年5月からプレビュー提供していたWindowsノードプールにおける「containerd」のサポートの一般提供開始を発表しました。 - AWSでNomadクラスタを構築――クラスタやジョブ管理の仕組みと内部構造を知る
コンテナオーケストレーションツールとして知られる「Kubernetes」とHashiCorpが提供する「Nomad」を比較検証する本連載。第3回はNomadを用いたクラスタ構築の手順やNomadの内部構造、ジョブ管理を中心に解説します。