コンテナランタイムコンテナ ランタイムは、オペレーティング システム レベルでコンテナを作成および管理するソフトウェア ツールまたはコンポーネントです。これはコンテナ化技術のコアコンポーネントの 1 つであり、コンテナ内でアプリケーションを実行し、分離、リソース管理、セキュリティなどの機能を提供するために使用されます。 Kubernetes では、コンテナ ランタイムはコンテナの管理と実行を担当するコンポーネントです。以前は、Docker が最も一般的に使用されていたコンテナ ランタイムでしたが、時間が経つにつれて、containerd が Kubernetes の別の一般的なコンテナ ランタイムの選択肢になりました。
コンテナ ランタイムの主なタスクは次のとおりです。
今日のクラウドネイティブ テクノロジーのトレンドでは、コンテナ化テクノロジーが最新のアプリケーション展開の主流の選択肢となっています。 Kubernetes (K8s) は、人気のコンテナ オーケストレーション システムとして、大規模なコンテナ クラスターの管理に広く使用されています。 K8s では、コンテナ ランタイムの選択がパフォーマンス、信頼性、セキュリティにおいて重要な役割を果たします。この記事では、2 つの一般的な K8s コンテナ ランタイムである Containerd と Docker を比較し、それらの類似点と相違点を探ります。 Docker: 元祖リーダー初期のコンテナ技術である Docker は、従来の仮想化方式を覆し、軽量なコンテナ化によるアプリケーションのパッケージ化、配信、運用を実現しました。 Docker はコンテナ技術の普及に重要な役割を果たしてきました。ユーザーフレンドリーなコマンドライン ツールとグラフィカル インターフェイスにより、コンテナ テクノロジーは開発者にとってより使いやすくなっています。ある時点で、Docker はコンテナ化とほぼ同義になりました。しかし、Kubernetes の台頭により、K8s における Docker の地位は徐々に脅かされるようになりました。一方、完全なコンテナ プラットフォームである Docker には、K8s に必要のない多くの機能が含まれており、リソースの無駄が生じます。一方、K8s 自体はコンテナ オーケストレーションとスケジューリング機能を提供しており、これらは Docker と重複し、ある程度の競合が発生します。 Docker が市場を独占するのを防ぐために、Docker の実装はいくつかの標準化されたモジュールに分割されました。標準化の目的は、モジュールを他の実装に置き換えることができ、特定のメーカーによって制御されないようにすることです。 Dockerは
したがって、containerd は docker の基本コンポーネントの 1 つです。 Docker のコンテナの管理と操作は基本的に containerd を通じて完了します。では、containerd とは何でしょうか? Containerd: K8s エコシステムの標準Containerd は、Docker チームによって開発されたオープンソースのコンテナ ランタイムです。軽量で高性能なコンテナ ランタイム環境の提供に重点を置いています。 Containerd は純粋なコンテナ ランタイムとして、K8s のアーキテクチャと要件にさらに沿うように設計されています。リソースフットプリントが小さく、起動時間が短く、パフォーマンスが向上します。 K8s コミュニティは Containerd の利点を認識しており、K8s エコシステムの標準コンテナ ランタイムとして使用しています。 Containerd は、コンテナ イメージの転送と保存、コンテナの実行と管理、ストレージとネットワークなど、ホスト内のコンテナのライフサイクル全体を管理できます。より詳細には、Containerd は次のことを行います。
コンテナ ランタイム インターフェース (CRI)コンテナ ランタイム インターフェース (CRI)。 CRI は、クラスター コンポーネントを再コンパイルせずに kubelet がさまざまなコンテナ ランタイムを使用できるようにするプラグイン インターフェイスです。 kubelet が Pod とそのコンテナを起動できるように、クラスター内のすべてのノードで機能するコンテナ ランタイムが必要です。コンテナ ランタイム インターフェース (CRI) は、kubelet とコンテナ ランタイム間の通信に使用される主要なプロトコルです。 Kubernetes と dockershimKubernetes アーキテクチャ図から、Kubelet の下に、OS との実際のやり取りである Contianer ランタイム (コンテナ ランタイム) のレイヤーがあることがわかります。このコンテナ ランタイムは、コンテナのライフ サイクル全体を管理し、イメージのプルなどの操作を実行する役割を担います。 現在サポートされているCRIバックエンドKubernetes を初めて使用する場合、通常はデフォルトで Docker をコンテナ ランタイムとして使用します。実際、Kubernetes 1.5 は CRI をサポートしています。 CRI インターフェースを通じて、Pod のバックエンドとして他のコンテナ ランタイムを指定できます。現在、CRI をサポートしているバックエンドは次のとおりです。
ドッカーシムKubernetes が CRI 動作仕様を提案したとき、Docker は containerd を分離したばかりで、CRI 標準をサポートしていませんでした。当時、Docker は最も主流かつ権威のあるコンテナ技術であったため、Kuberentes は CRI インターフェース仕様を提案したものの、CRI と Docker 間の接続を適応させる必要があり、Kubelet と Docker のコンテナ ランタイムを接続するための中間層またはシムが必要でした。そこで、Dockershim が kubelet に追加されました (shim は一時的かつ互換性があることを意味します)。 docker をランタイムとして使用する場合、コンテナを起動する実際のプロセスは次のようになります。この段階では、dockershim コンポーネントは Kubelet コード内にあります。つまり、Dockershim は K8S 組織によって開発および保守されています。 K8S 組織は Docker のバージョンリリースを制御および管理できないため、Docker が新しいリリースをリリースするたびに、K8S 組織は Dockershim を迅速に更新および保守することに重点を置く必要があります。 Kubernetes バージョン 1.24 では、dockershim が正式に削除され、非推奨になりました。この問題の本質は、組み込みの dockershim 機能を放棄し、Containerd に直接接続することです (CRI は後でサポートされます)。この方法はより標準的であり、呼び出しリンクもシンプルです。 通話関係の比較ランタイムが docker の場合の呼び出しチェーン: 呼び出し関係は次のとおりです: kubelet --> dockershim (kubelet プロセス内) --> dockerd --> containerd ランタイムが containerd の場合の呼び出しチェーン: 呼び出し関係は次のとおりです: kubelet --> cri plugin (containerd プロセス内) --> containerd 概要: k8s の観点からは、Containerd をランタイム コンポーネントとして選択する方が適切です。これは、Containerd の方が呼び出しチェーンが短く、コンポーネントが少なく、より安定しており、占有するノード リソースが少ないためです。 一般的なコマンドctr は containerd のクライアント ツールです。 crictl は、k8s ノード上のコンテナ ランタイムとアプリケーションを検査およびデバッグするために使用できる、CRI 準拠のコンテナ ランタイム コマンド ライン インターフェイスです。 ctr -v は containerd のバージョンを出力し、crictl -v は k8s の現在のバージョンを出力します。結果から、明らかに crictl が k8s に使用されていることがわかります。
|
<<: エッジコンピューティングアーキテクチャ: 低遅延エッジサービスの実現
>>: 小紅書は、兆レベルのソーシャルネットワーク関係の課題にどのように対処するのでしょうか?グラフストレージシステム REDtao が登場しました!
gigsgigscloud は、cogentco、NTT、AN2YIX などのアジアピアリングに接続...
コンテンツ マーケティングは、最初はシンプルなテキスト、その後は画像、そしてパーソナライズされたカス...
中国で頻繁にオンラインショッピングをする女性の友人の多くは、B2Cプラットフォーム「Meilishu...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています社会の発展...
企業や組織が人工知能の開発から真の利益を得られるよう、マイクロソフトは今週、顧客が人工知能ツールを簡...
ご存知のとおり、キーワードは Baidu 入札において重要な役割を果たします。選択するキーワードが多...
[[205059]]現在のパブリッククラウド環境 (AWS、Microsoft Azure、Goog...
インターネット マーケティングは、さまざまな企業がブランド認知度と売上を高めるのに役立つ素晴らしいツ...
中国の四大伝統祭りの一つである中秋節は、昔から中国文化を継承する良い日とされてきました。もちろん、フ...
Olinkcloud は中国が運営するホスティング ブランドであり、旧ブランド diahosting...
Tianren は「グリーン SEO」の創出を呼びかけています。多くの友人が「なぜグリーン SEO ...
失望は常に希望とともにやって来る。人々があなたの製品やサービスに頼るようになると、あなたの製品が彼ら...
ロングテールキーワードは一般的に単語数が多く、2~3語(語句またはフレーズ)で構成されることが多く、...
過去1年間、百度の「月経」は数回不規則になり、その数は毎月小さな変化と3ヶ月ごとに大きな変化と言えま...
SEO では、まずユーザーの心理的ニーズ、ユーザーがどのようなキーワードを使って必要な情報を検索する...