LinuxKitを発表:安全でリーンでポータブルなLinuxサブシステムを構築するためのツールキット

リナックスキット

昨年、ユーザーから寄せられた最も一般的な要望の 1 つは、プラットフォームに Docker ネイティブ エクスペリエンスを導入することでした。 これらのプラットフォームは、AWS、Azure、Google Cloudなどのクラウドプラットフォームから、Windows Serverなどのサーバープラットフォーム、OSXやWindows 10などの開発者が使用したデスクトッププラットフォーム、メインフレームやIoTプラットフォームまで、多種多様でした。

私たちはこれらのプラットフォームのサポートに取り組み始め、最初に Docker for Mac と Docker for Windows を出荷し、その後 Docker for AWS と Docker for Azure を出荷しました。 ごく最近、私たちは発表しました Docker for GCP のベータ版です。 各プラットフォームに Docker をネイティブにするために適用したカスタマイズにより、Docker エディションの採用が促進されました。

私たちが遭遇した問題の1つは、これらのプラットフォームの多くで、ユーザーがLinuxコンテナのサポートを望んでいたが、プラットフォーム自体にLinuxが含まれていなかったことでした。 Mac OSとWindowsは2つの明白な例ですが、クラウドプラットフォームには標準のLinuxも付属していません。 したがって、LinuxをDockerプラットフォームにバンドルして、これらの場所で実行することは理にかなっています。

バンドルする必要があったのは、コンテナプラットフォームのコンポーネントとしてLinuxコンテナ機能を提供できる、安全で無駄のないポータブルLinuxサブシステムでした。 結局のところ、これはコンテナを扱う他の多くの人々も望んでいたことです。コンテナの移動のための安全で無駄のないポータブルLinuxサブシステム、 そのため、いくつかの企業やLinux Foundationと提携してこのコンポーネントを構築しました。 これらの企業には、HPE、Intel、ARM、IBM、Microsoftが含まれ、これらはすべて、IoTからメインフレームまで、Linuxコンテナ機能を新しいさまざまなプラットフォームにもたらすことに関心を持っています。

LinuxKit には、ランタイムプラットフォームが必要とするコンポーネントのみを正確に含むカスタムLinuxサブシステムを構築できるツールが含まれています。 すべてのシステムサービスは置き換え可能なコンテナであり、不要なものはすべて削除できます。 すべてのコンポーネントは、特定のニーズに一致するコンポーネントに置き換えることができます。 これはキットであり、バッテリーが含まれているが交換可能であるというDockerの哲学に非常に似ています。本日、Dockercon 2017のステージで、LinuxKitをオープンソース化しました。 https://github.com/linuxkit/linuxkit.

安全で無駄のないポータブルOSの目標を達成するために、コンテナからコンテナ用に構築しました。セキュリティはトップレベルの目標であり、NISTのドラフトアプリケーションコンテナセキュリティガイドで「攻撃対象領域を減らすために、汎用OSではなくコンテナ固有のOSを使用する」と述べています。 コンテナ固有のOSを使用する場合、攻撃対象領域は通常、汎用OSよりもはるかに小さいため、コンテナ固有のOSを攻撃して侵害する機会が少なくなります。」

無駄のないことは、OSがコンテナを実行する単一のユースケースを中心に設計されている場合に不要な部分を削除することにより、セキュリティに直接役立ちます。 LinuxKit はコンテナネイティブであるため、起動時間は最小限で 35MB と非常に小さくなっています。すべてのシステムサービスはコンテナであるため、すべてを削除または置き換えることができます。

システム サービスは、必要な特権のみを持つコンテナーにサンドボックス化されます。 この構成は、コンテナーのユース ケースに合わせて設計されています。 システム全体は不変のインフラストラクチャとして使用するように構築されているため、CI パイプラインで構築およびテストし、デプロイし、アップグレードするときに新しいバージョンを再デプロイできます。

カーネルは、Linuxカーネルコミュニティとのコラボレーションから生まれ、プロセスに参加し、次のようなグループと協力しています。 カーネル自己保護プロジェクト (KSPP)、LinuxKitがサポートするプラットフォームの問題を修正するために必要な最小限のパッチのみを含む最近のカーネルを出荷します。 カーネルセキュリティプロセスは、単一の企業が独自に開発しようとするには大きすぎるため、幅広い業界のコラボレーションが必要です。

さらに、LinuxKit は、Linux セキュリティの向上が期待されるセキュリティプロジェクトをインキュベートするためのスペースを提供します。 私たちは、次のような外部のオープンソースプロジェクトと協力しています ワイヤーガード, ランドロック, 蜃気楼, oカーネル、クリアコンテナなどを使用して、コンテナスペースの革新のテストベッドと焦点、および生産へのルートを提供します。

LinuxKit は、Docker が現在実行している多くのプラットフォーム向けに構築されており、はるかに多くのプラットフォームで実行できるようにすることを目的として、移植可能です。 大型または小型のマシン、ベアメタルまたは仮想化、メインフレーム、またはコンテナがコンピューティングのあらゆる領域に到達するときにモノのインターネットシナリオで使用されるデバイスの種類。

発表会では、マイクロソフトのジョン・ゴスマンをステージに招待しました。 マイクロソフトとは、Docker for Windows Server、Docker for Windows、Docker for Azureなど、長いコラボレーションの歴史があります。 そのコラボレーションの一環として、Docker for WindowsとDocker for AzureのLinuxサブシステムでの作業、およびこれらのプラットフォームでのLinuxKitとのHyper-V統合に取り組んでいます。 本日発表されたコラボレーションの次のステップは、すべての Windows Server および Windows 10 のお客様が Linux コンテナーにアクセスできるようになり、linuxKit を Hyper-V 分離と統合する方法について協力することです。

本日、LinuxKit をパートナーやオープンソース愛好家に開放し、Linux で新しいものを構築し、コンテナプラットフォームを拡張します。 私たちはあなたがそれから何を作り、コミュニティに貢献するかを見るのを楽しみにしています。

Linuxkit の詳細については、以下を参照してください。