成熟したコンテナーランタイム:containerdはCNCFの卒業生になります

私たちは最初からcontainerdプロジェクトをフォローしてきました。 したがって、重要なイベントを無視することはできません。昨夜、Kubernetesの背後にあるCNCF組織およびクラウドネイティブワールド向けのその他の優れたオープンソースソリューションが、コンテナ化された「卒業」を発表しました 。 このプロジェクトはすでにこのステータスで5番目で、K8、プロメテウス、エンボイ、CoreDNSの仲間入りをしました。







CNCF基準



現在多数のオープンソースプロジェクトをサポートしているCNCFは、分類に3つのカテゴリを採用しています。



  1. サンドボックス (「サンドボックス」)-(将来)「CNCFミッションの価値を追加する」、つまり実験的でありながら将来性のある開発用 最新のクラウドネイティブアプリケーションのインフラストラクチャを中心に形成されるオープンソースエコシステムとコミュニティの開発に貢献します。 このようなプロジェクトは12個あります。
  2. インキュベーション (「インキュベーター」)-少なくとも3人の(文書化され独立した)ユーザーが本番であり、その中に十分な(技術委員会による)品質レベルとスケールが提供され、コミットビットとコードベースの安定した開発。 それらの15があります。
  3. 卒業 -少なくとも2つの組織のコミッターがいるプロジェクト、 ベストプラクティスCII (コアインフラストラクチャイニシアチブ)に準拠したバッジ、 CNCF行動規範 、明確に定義されたコミットの管理と承認、ユーザーの公開リスト、そしてもちろんポジティブCNCF技術委員会による対応する投票の結果。 今では5つあります。






要するに、CNCFでの「リリース」に対するプロジェクトの準備は、「急速に成長している適応、独創性、正式な管理プロセス、そして持続可能な包括的コミュニティへの厳格なコミットメント」として策定されています。 ほぼ2年前にDockerからCNCFに譲渡されたcontainerdは、現在これらの基準を満たしていると認識されています。



コンテナ:起源と現在



containerdプロジェクトは、Docker ツリーが大きいときまで遡ります。 2015年に、その開発者はDocker Engineをよりコンパクト(高速、信頼性、ポータブル...)にする時間であると発表したため、コンポーネントを個別のプロジェクトに取り入れ始めました



すべてはruncコンテナー起動ツール(2015)の発表から始まり 、その後コンテナーのcontainerdランタイム(2016)が登場し、1年後にこのイニシアチブはさらにグローバルになり、 Mobyもたらしました





Docker 1.11のリリースのイラスト(2016年4月):Docker Engineとそこから削除されたコンポーネント



containerdに戻ります。 要するに、ホストシステム上のデーモンとして、コンテナのライフサイクル全体を制御するという事実に、その機能的な役割は減りました(そして、これは今日に変更されていません) :コンテナの起動と格納から(既に述べたruncを介して)そして彼の仕事を制御します。 コンテナの分離から1年後の2017年3月、 Docker それをCNCF転送しました 。これは、CoreOSからの同様のイニシアチブであるrkt一緒に行わました (これに戻ります)



さらなる開発には、CRI-O *と呼ばれるKubernetes志向の競合他社の出現と開発 (Red Hatのリーダーシップの下)およびcri-containerdの形式のDocker Incのミラー「応答」が含まれます。



特別な(セルフタイトルの)デーモンがcri-containerdのK8と対話するために使用され、バージョン1.1により、ソリューション Kubernetesの新しいコンテナーランタイム環境(Container Runtime Interface(CRI))のプラグインとなり、ここではcontainerdと直接通信するプラグイン(必要な関数を呼び出します)。







2018年6月、コンテナ化されたCRIプラグインの生産準備が整ったことが発表されました。 現在のプロジェクトリポジトリはcontainerd / criです。



*興味深いのは、2018年11月に提出された、CNCFプロジェクトに競合他社のコンテナおよびrkt-CRI-O-を含めるために提出された申請が、組織によってまだ承認されていないことです。



今日、containtedは無意識のうちに「業界標準であり、シンプルさ、信頼性、移植性に重点を置いた実行可能なコンテナ環境」と自称しています。







containerdを使用したコンテナソリューションの実際のアーキテクチャ(もちろん、ほとんどの場合、Kubernetesに焦点を当てていますが、正式にはこのプラットフォームに限定されません) 、次のように表示されます。







ソリューション自体 、Linux(カーネルバージョン4.xが推奨されますが、以前のバージョンのオプションも可能です)およびWindows用のデーモンの形で提供されます。 ソースコードはGoで記述されています(バージョン1.9.x +が必要です )。



containerdの最新リリースは1.2.4 (日付は2019年2月14日)でrunc脆弱性CVE-2019-5736が修正されました。 次のマイルストーンはバージョン1.3でコンテナグループ 、イメージのプル操作のパフォーマンス最適化 、snapshotterでの作業のさまざまな改善などが期待されています。



このプロジェクトには、GitHubに3500人以上のスター、14のコミッター、 Alibaba 、Facebook、Google、 Huawei 、IBM、Microsoft、NTT、Teslaなどの企業(もちろんDockerを除く)の166人の貢献者がいます。 DevStatsでは、より多くのコードベース統計を見ることができます。



注目に値するコンテナユーザーの中では、Moby自体と関連プロジェクト(LinuxKit、BuildKit)、Googleクラウドサービス(GKE)、Microsoft(Azureのac-engine、および将来のAKS)、IBM(IKS、ICP)、Alibabaについて言及するだけで十分です。コンテナソリューション/エンジン(RancherのRio、Kata Containers、Balena)、さらに最近の爆竹さえも。



競合他社について



最後に、ほぼ同時にCNCFに含まれるコンテナー化されたものの類似物であるrktの開発のペースが大幅に遅いことは言うに値します。 最後のリリース(v1.30.0)がほぼ1年前(2018年4月)に行われたことを示すだけで十分です。



ビジネスの観点から論理的な結論があります。約1年前、元のrkt開発者であるCoreOS Red Hat に買収されました。 そして、後者(または、IBMが既に持っていると言う方が正しい)は、資料で述べたように、独自の発想-クリオ-があり、その活動はより積極的に行われています。



しかし、Linuxの巨人はCNCFでプロジェクトを「開始」することができませんでしたが、おそらく業界標準としてのコンテナー化についての言葉は信じられないほど聞こえます。



PS



ブログもご覧ください。






All Articles