すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ContainerOSの概要

最終更新日:Nov 14, 2024

ContainerOSは、Alibaba Cloudがコンテナ化開発のために提供するオペレーティングシステムです。 ContainerOSはKubernetesと完全に互換性があります。 ContainerOSはAlibaba Cloud Linux 3に基づいており、セキュリティの強化、起動の高速化、システムサービスとソフトウェアパッケージの簡素化を実現します。 ContainerOSには、クラウドネイティブのシナリオですぐに使える機能を提供するコンポーネントがプリインストールされています。 このトピックでは、ContainerOSの適用範囲、基本情報、機能、利点、およびセキュリティに関する考慮事項について説明します。

制限事項

  • ContainerOSは、Container Service for Kubernetes (ACK) クラスターのノードプールでのみ使用でき、containerdランタイムのみをサポートします。 詳細については、「ACK管理クラスターの作成」をご参照ください。

  • ContainerOSはKubernetes 1.24.6以降のみをサポートします。 既存のクラスターのKubernetesバージョンを更新する方法の詳細については、「手動でACKクラスターをアップグレードする」をご参照ください。

  • GPU高速化インスタンスおよびArmベースのインスタンスでは、ContainerOSを使用できません。

ContainerOSの概要

クラウドネイティブテクノロジーの急速な発展により、コンテナ化はアプリケーションのデプロイに広く採用されています。 コンテナランタイムやKubernetesコンポーネントなどのクラウドネイティブコンポーネントの出現により、アプリケーション開発に集中することができ、基盤となるインフラストラクチャを管理および保守する必要がなくなります。 より多くのシナリオをサポートするために、従来のオペレーティングシステムディストリビューションには、ユーザースペースツール、ソフトウェアパッケージ、およびシステムサービスがプリインストールされています。 これにより、オペレーティングシステムのサイズが大幅に増加し、オペレーティングシステムの起動速度が低下し、オペレーティングシステムのO&Mに課題が発生します。 これらの課題には、ソフトウェアパッケージとソフトウェアバージョンの管理が含まれます。 クラウドネイティブシナリオでの従来のオペレーティングシステムの互換性を向上させ、ACKのユーザーエクスペリエンスを向上させるために、ACKはコンテナ化開発に特化したオペレーティングシステムであるContainerOSを提供します。

従来のオペレーティングシステムと比較して、ContainerOSは、モジュラーアーキテクチャを使用する軽量ノードオペレーティングシステムです。 ContainerOSを使用すると、コンテナをより高速に起動し、コンテナをより効率的に実行できます。 さらに、ContainerOSはセキュリティを強化し、必要なコンピューティングリソースが少ないため、ContainerOSはクラウドコンピューティングや大規模な展開に最適です。 これらの利点は、より良いユーザーエクスペリエンスを提供します。

特徴

機能

説明

簡略化されたオペレーティングシステムイメージ

ContainerOSには、ポッドの実行に必要なソフトウェアパッケージとシステムサービスのみが含まれます。 システム全体の統合と最適化により、ContainerOSは他のオペレーティングシステムよりもはるかに高速に起動できます。 ContainerOSには約200のソフトウェアパッケージが含まれていますが、Alibaba Cloud Linux 3、Alibaba Cloud Linux 2、CentOSなどの一般的なオペレーティングシステムには、デフォルトで約600のソフトウェアパッケージがプリインストールされています。

  • システムストレージ要件の最小化: ContainerOSはソフトウェアパッケージの数を60% 以上削減し、システムが占有するストレージスペースを大幅に削減します。

  • Common Vulnerabilities and Exposures (CVE) の軽減: ソフトウェアパッケージが少ないため、攻撃に対する脆弱性が低くなり、システム全体のセキュリティが向上します。

ContainerOSはPythonをサポートしておらず、SSHを使用して直接ログオンすることはできません。 ContainerOSは、追加の構成なしで使用できる既成の機能を提供します。 オペレーティングシステムを維持する必要なしに、アプリケーション開発に集中できます。

迅速なスタートアップ

ContainerOSはエンドツーエンドの統合と最適化を提供し、起動を大幅に高速化し、ノードをACKクラスターに追加するのに必要な時間を短縮します。 ContainerOSの起動が簡素化されます。 主要なクラスター制御コンポーネントは、ノードの初期化中にこれらのコンポーネントのイメージをプルする必要がないように、ContainerOSのイメージにプリインストールされています。 これらの機能は、最適化されたACK制御リンクとともに、ACKクラスタにノードを追加するのに必要な時間を大幅に短縮します。

次の図は、さまざまなオペレーティングシステムの起動時間を示しています。 ContainerOSを使用して1,000ノードをデプロイする場合、90% のノードが準備完了状態になるまでに53秒かかります。 CentOSまたはAlibaba Cloud Linux 2を使用してノードをデプロイする場合、起動時間はノードの起動時間よりも大幅に短くなります。 詳細については、「ContainerOSを使用したノードの迅速なスケールアウト」をご参照ください。

image
重要

前の図に示した値は理論値にすぎない。 実際の値は、サービスの最適化と環境によって異なる場合があります。

セキュリティ強化

ContainerOSのルートファイルシステムは読み取り専用です。 /etcおよび /varディレクトリに対してのみ読み取りおよび書き込み権限があります。 これにより、いくつかの基本的なシステム構成を設定できます。 このように、ContainerOSは不変インフラストラクチャの原則に準拠し、ホストファイルシステムでのコンテナのエスケープや不正操作を防ぎます。 ContainerOSでは、システムに直接ログオンして追跡不可能な操作を実行することはできません。 ただし、ContainerOSは、O&M要件を満たすために使用できるコンテナーを提供します。 管理コンテナの使用方法の詳細については、「ContainerOSの管理コンテナの操作」をご参照ください。

アトミック更新

ContainerOSは不変インフラストラクチャの原則に準拠しており、Yellowdog Updater Modified (YUM) パッケージ管理ツールをサポートしていません。 ContainerOSは、オペレーティングシステムイメージバージョンの更新とロールバック (システムディスクの交換による) をサポートし、限られた階層のホットアップデート機能を提供します。 これにより、ノード間のソフトウェアバージョンとシステム構成の一貫性が確保されます。 各ContainerOSイメージは、リリース前に厳密なテストに合格する必要があります。 Red Hat Package Manager (RPM) パッケージに基づく従来の更新と比較して、オペレーティングシステムイメージに基づく更新により、更新が完了した後のシステムの安定性が向上します。

メリット

メリット

説明

コンテナ化开発の専门分野

ContainerOSはコンテナ化された開発に特化しており、迅速な起動、セキュリティ強化、不変のルートファイルシステムなどの利点があります。 これらの利点により、パフォーマンスが向上し、クラスターのO&Mと管理が容易になり、ノード間の一貫性が確保されます。

高速スケールアウト

ACK制御プレーンの内部最適化と最適化により、ContainerOSはACKクラスターのスケールアウトに必要な時間を大幅に短縮します。 クラスターへのノードの追加に必要な時間は、クラスターのスケールアウトに必要なE2E時間の90% 以上を占めています。 ContainerOSをノードオペレーティングシステムとして使用すると、ACKクラスターのスケールアウトに必要なE2E時間が大幅に短縮されます。

高いO&M機能

ContainerOSはACKコントロールプレーンと統合されており、Kubernetesバージョンとシステムソフトウェアバージョンを更新し、オペレーティングシステムイメージバージョンを更新することでCVEの脆弱性を修正できます。 コンポーネントとともにプリインストールされたイメージを使用してノードの初期化を高速化するAlibaba Cloud Linux 2と比較して、ContainerOSは自動O&MおよびCVEパッチ適用を提供します。 これにより、イメージのメンテナンスやノードのO&Mから解放され、ACKクラスターの使用作業が大幅に簡素化されます。

ContainerOSはACK用に最適化されています。 ContainerOSは、ノードのO&Mアクティビティによって引き起こされるサービスのダウンタイムを大幅に削減して、ビジネスの安定性を確保できます。

Alibaba Cloud Linux 3との互換性

ContainerOSのカーネルバージョンとほとんどのソフトウェアバージョンは、Alibaba Cloud Linux 3と同じです。 ContainerOSは、最新のLinuxカーネルバージョンであるLinuxカーネル5.10 LTSを使用します。 これは、アプリケーションの最新のLinux機能を提供します。 Alibaba Cloud Linux 3の詳細については、「概要」をご参照ください。

セキュリティに関する考慮事項

ContainerOSは、セキュリティを強化するために次の設計原則に従います。

オペレーティングシステムのセキュリティ

実行環境を最小化

ContainerOSには、コンテナ化シナリオで必要なソフトウェアパッケージとシステムサービスのみが含まれます。 ContainerOSには210を超えるソフトウェアパッケージが含まれています。 ソフトウェアパッケージが少ないほど、CVEの脆弱性が少なくなり、システムのセキュリティが向上します。 ContainerOSは、binutils、Python、OpenSSH、tcpdumpなどのリスクの高いCVE脆弱性を持つソフトウェアパッケージを削除して、スクリプト実行環境を最小限に抑えます。 さらに、ContainerOSはPython、Perl、またはRubyスクリプトの実行をサポートしていません。

不変ルートファイルシステム

ContainerOSは、YUMなどのパッケージ管理ソフトウェアをサポートしていません。トレース可能なオペレーティングシステムの更新とロールバックに使用できるのは、RPM-OSTreeのみです。 ルートファイルシステム /およびコアディレクトリ /usr (バイナリおよびダイナミックライブラリが格納されているディレクトリ) は読み取り専用です。 /etc (動的構成ディレクトリ) と /var (ログとコンテナイメージが保存されているディレクトリ) は書き込み可能なままです。

次の表に、ファイルシステム内のさまざまなパス、パスの属性、およびパスの使用方法に関する提案を示します。

パス

属性

説明

/

/usr

読み取り専用

実行可能

ルートファイルシステム /および /usrディレクトリは読み取り専用モードでマウントされ、システムの整合性を確保し、改ざんを防止します。

/etc

書き込み可能

ステートフル

このパスには、カスタムsystemdサービスファイルやカスタムソフトウェア設定などのシステム構成ファイルが含まれます。 このディレクトリ内のカスタム構成ファイルは、システムの更新後も保持されます。

/var

書き込み可能

ステートフル

このパスは、特定のコンポーネントの実行に必要なディレクトリ (/var/run/NetworkManagerなど) と一部のコンポーネントの作業ディレクトリ (/var/lib/containerdなど) を格納するために使用されます。 このディレクトリのコンテンツは、システムの更新後も保持されます。

/ホーム

/mnt

/opt

/root

/usr /ローカル

書き込み可能

ステートフル

これらのパスは、/varディレクトリにシンボリックにリンクされています。 たとえば、/homeディレクトリに新しいユーザーを作成したり、他のデータディスクを /mntディレクトリにマウントしたりできます。

/run

/tmp

書き込み可能

ステートレス

このパスは、一時ファイルシステム (TMPFS) ファイルシステムにマウントされ、システムで必要な一時ファイルを格納するために使用できます。 システムを再起動すると、データはクリアされます。

ContainerOSを実行するインスタンスへのアクセスモード

デフォルトでは、ContainerOSはOpenSSHパッケージと共にインストールされません。 したがって、sshdが使用できないため、SSHを介してContainerOSを実行するインスタンスにログインすることはできません。 次の方法を使用して、インスタンスにログインできます。

  • 管理コンテナをオンデマンドで使用: Cloud Assistantクライアントでコマンドを実行し、管理コンテナを起動します。 インスタンスのキーペアを使用してコンテナーにログインします。 パスワードではログオンできません。

  • Session Managerを使用してインスタンスに接続する: Web Socket Secure (WSS) プロトコルを使用して、Session ManagerクライアントとCloud Assistantサーバー間、およびCloud AssistantサーバーとCloud Assistant Agent間に永続的なWebSocket接続を確立します。 WSSプロトコルは、SSLプロトコルを使用して永続的なWebSocket接続を暗号化し、セキュリティを確保します。

インフラストラクチャのセキュリティ

Alibaba Cloud Linuxに基づくソフトウェアパッケージシステム

Alibaba Cloud Linuxは、Alibaba Cloudによって開発されたLinuxオペレーティングシステムディストリビューションです。 これは、Alibaba Cloudで最も広く採用されているオペレーティングシステムディストリビューションです。 ContainerOSは、Alibaba Cloud Linux、さまざまなクラウドコンピューティングシナリオ、およびAlibaba cloud Linuxに基づくソフトウェアパッケージとイメージの構築における長年の経験に基づいて最適化されています。 ContainerOSがリリースされる前に、Alibaba Cloudは、ContainerOSの可用性とセキュリティを確保するための基本テストとACK統合テストを実行します。

継続的な脆弱性スキャンとパッチ適用

ContainerOSをACKのマネージドノードプールで使用して、ノード例外を自動的に診断および修正し、CVEの脆弱性にパッチを適用できます。 これにより、ノードの可用性とセキュリティが保証されます。

課金

ContainerOSは無料です。 ContainerOSは、ACKクラスターのノードプールで無料で使用できます。 ACKはContainerOSに長期無料のテクニカルサポートを提供します。

vCPU、メモリ、ストレージ、パブリック帯域幅、スナップショットなど、ContainerOSとともに使用されるリソースに対して課金されます。 他のリソースの課金の詳細については、「課金の概要」をご参照ください。

関連ドキュメント

  • ContainerOSをノードプールのオペレーティングシステムとして使用する方法の詳細については、「ContainerOSの使用」をご参照ください。

  • ContainerOSは、ACKのノードスケールアウトの効率を向上させるために、オペレーティングシステムの起動とイメージプリングを加速しました。 詳細については、「ContainerOSを使用したノードの迅速なスケールアウト」をご参照ください。

  • ホスト環境へのアクセス、管理コンテナの停止、再起動、削除など、ContainerOSの管理コンテナの操作方法の詳細については、「ContainerOSの管理コンテナの操作」をご参照ください。

  • ContainerOSイメージのリリースノートの詳細については、「OSイメージのリリースノート」をご参照ください。