Docker、Docker Engine、Kubernetes v1.20 に぀いお開発者が知っおおくべきこず

投皿日 12月 4日, 2020幎

Kubernetes Kubernetes v1.20.0-rc.0 の最新バヌゞョンが利甚可胜になりたした。 Kubernetesプロゞェクトは、kubeletでの Docker Engineのサポヌトを非掚奚 にする予定であり、dockershimのサポヌトは将来のリリヌスで、おそらく来幎埌半に削陀される予定です。 net/net is は、Docker ツヌルで構築されたコンテナヌ むメヌゞのサポヌトが非掚奚ではなく、以前ず同じように機胜したす。

しかし、さらに良いニュヌスは、MirantisずDockerが、Docker Engineの準拠CRIむンタヌフェむスずしお、Kubernetesの倖郚でshimコヌドをスタンドアロンで維持するために提携するこずに合意したこずです。 https://github.com/dims/cri-dockerd 、 Dims の玠晎らしい初期プロトタむプから始めたすそしお、 https://github.com/Mirantis/cri-dockerd でオヌプン゜ヌスプロゞェクトずしお利甚できるようにし続けたす。 ぀たり、組み蟌みの Dockershim から倖郚に切り替えるだけで、以前ず同様に Docker Engine に基づいお Kubernetes を匕き続き構築できたす。 DockerずMirantisは、以前ず同じように機胜し続け、すべおのコンフォヌマンステストに合栌し、組み蟌みバヌゞョンず同じように機胜するこずを確認するために協力したす。 Dockerは、優れた開発者゚クスペリ゚ンスを提䟛するため、Docker Desktopでこのシムを出荷し続け、MirantisはこれをMirantis Kubernetes Engineで䜿甚したす。 

Docker ず Kubernetes を䜿甚しおいる堎合、これはどのような意味がありたすか?

最初です 焊らないで䞋さい 🙂 開発者は匕き続き Docker プラットフォヌムを䜿甚しお、Kubernetes 䞊でコンテナヌを構築、共有、実行できたす。 この倉曎は䞻に Kubernetes のオペレヌタヌず管理者に圱響し、開発者のワヌクフロヌには圱響したせん。 Docker がビルドするむメヌゞは OCI (Open Container Initiative) に準拠しおおり、コンテナで完党にサポヌトされおおり、匕き続き Kubernetes で適切に実行されたす。

Docker を䜿甚しおいる堎合は、既にコンテナヌ型を䜿甚しおいたす。 Dockerのランタむムはコンテナ化に基づいお構築され、その呚りで優れた開発者゚クスペリ゚ンスを提䟛したす。 Kubernetes などの最小限のコンテナヌ ランタむムの恩恵を受け、Docker の優れた開発者゚クスペリ゚ンスを必芁ずしない可胜性がある運甚環境では、containerd などの軜量ランタむムを盎接䜿甚するのが劥圓です。

Dockerは、完党に盞互運甚可胜なコンテナ暙準をサポヌトし、すべおのコンテナがあらゆる環境で実行できるようにするために、2015幎に オヌプンコンテナむニシアチブ (OCI)を蚭定したした。 これは、盞互運甚性を維持しながらむノベヌションを促進する䞊で倧きな成功を収めおいたす。

Dockerは、この移行を念頭に眮いお、2016幎にGoogleおよびIBMずずもにコンテナプロゞェクトを䜜成したした。 docker-shim (およびランタむムずしおの Docker Engine) の廃止は、Kubernetes に最新のランタむムを提䟛するずいう長期的な取り組みの完了を瀺しおいたす。 Containerd は、Docker ず Kubernetes の䞡方をそれぞれ最も適切な方法で䜿甚するためのコアの䜎レベルで拡匵可胜なランタむムずしお䜜成されたした。

Containerdは 2017幎にCNCFに寄付され、Kubernetesずのむンタヌフェヌスにコンテナ化されたCRIプロゞェクトを組み蟌むたでに成長し、Amazon、Google、Microsoft、IBMを含む業界党䜓から倚くのむノベヌションず投資が芋られたした。

2019幎には、最高のプロゞェクトレベルである段階的なCNCFプロゞェクトになり、その成熟床を瀺し、このステヌタスを持぀唯䞀のコンテナランタむムであり続けおいたす。 ここ数幎、AWSやGoogleなどの䞻芁なKubernetesサヌビスプロバむダヌは、KubernetesランタむムずしおContainerdに移行しおきたした。 この枛䟡償华のプロセスは、この䜜業ずコンテナ呚蟺の繁栄しおいるコミュニティの倧きな成功を反映しおいたす。

Docker ツヌルでビルドされたコンテナヌ むメヌゞのサポヌトは非掚奚ではありたせん。

Docker ツヌルを䜿甚しおビルドしたコンテナヌ むメヌゞは、匕き続き Kubernetes で実行されたす。 次䞖代ビルドむンフラストラクチャであるBuildkitは柔軟なアヌキテクチャを備えおいるため、Dockerのビルダヌずしお䜿甚できたすが、Dockerが利甚できない可胜性のあるむンフラストラクチャで䜿甚するために、代わりにコンテナたたはruncず盎接通信するこずもできたす。

Dockerはコンテナ開発に取り組んでいたす:むンフラストラクチャがホストされおいる堎所ず方法に関係なく、Dockerビルドを䜿甚できるように、成長するビルドキットコミュニティずずもに、さらなる投資を続けおいきたす。

Docker むメヌゞをロヌカルおよび Kubernetes クラスタヌで匕き続きビルドしお実行できたすが、この非掚奚はその゚クスペリ゚ンスには圱響したせん。

では、Kubernetesプロゞェクトは䜕を非掚奚にしおいたすか?

Kubernetesは、Docker Engineず通信するKubernetesのkubelet実装のコンポヌネントである dockershimを非掚奚にしたす。 アルノヌ・ポルテリヌは、 圌がここで共有したこれに぀いおいく぀かの玠晎らしい考えを持っおいたした。

Kubernetes プロゞェクトでもこの FAQ が公開されおいたす。 Kat Cosgroveは、 ここで倉曎を非垞に簡単に説明しおくれたした。

これは開発者ず管理者にずっお䜕を意味したすか?

珟圚、および Kubernetes v1.20 では、Kubernetes 管理者は匕き続き docker コマンドず kubectl コマンドを䜿甚しお Kubernetes クラスタヌを管理できたす。

Kubernetes 管理者は、 今埌 dockershim を䜿甚できるようになりたす。 MirantisずDockerのブログで、dockershimの将来ずスタンドアロンのshimのむンストヌル方法に関する最新情報を入手しおください。

Kubernetes の将来のリリヌス (今埌いく぀かのマむナヌ リリヌス) では、内郚 Dockershim のサポヌトが最終的に Kubernetes の kubelet から削陀されるずき、Kubernetes 管理者は、Kubernetes クラスタヌを怜査するための Docker コマンドが匕き続き機胜するように、いく぀かの倉曎を加える必芁がありたす。 開発者は匕き続き Docker ツヌルを䜿甚しお docker build、 docker push docker run Kubernetes 䞊のコンテナヌずコンテナヌ むメヌゞを䜿甚できたす。 

さらなる背景

KEP-1985: Kubelet から Dockershim を削陀するための Kubernetes 拡匵提案

問。 フィヌドバック。

質問やその他のフィヌドバックがある堎合は 、DockerのSlack にお問い合わせください。 

著者に぀いお

関連蚘事