Container Service for Kubernetes (ACK) は、containerd、Sandboxed-Container、Docker のコンテナーランタイムをサポートしています。このトピックでは、これらのランタイムを実装、制限、デプロイメントアーキテクチャの観点から比較し、ニーズやシナリオに適したコンテナーランタイムを選択するのに役立ちます。
実装と制限の観点からの比較
機能 | containerd | Sandboxed-Container | Docker (メンテナンス終了) |
クラスタータイプ |
|
| すべてのタイプの ACK クラスター |
Kubernetes バージョン | バージョン 1.20 以降 | Kubernetes 1.16 以降 | Kubernetes 1.22 以前 説明 containerd への移行を推奨します。詳細については、「Docker から containerd への移行」をご参照ください。 |
ノードタイプ |
| ECS ベアメタルインスタンスファミリーのみがサポートされています | ECS |
ノードオペレーティングシステム | Container Service for Kubernetes は、Alibaba Cloud Linux 3 コンテナー最適化バージョン、ContainerOS、Alibaba Cloud Linux 3、Ubuntu、Windows などのオペレーティングシステム用のパブリックイメージを提供しています。詳細については、「オペレーティングシステム」をご参照ください。 |
| |
コンテナーエンジン | containerd | containerd | Docker |
モニタリング | サポート | サポート | サポート |
コンテナーログ収集 | サポート | 手動インジェクション (Sidecar) | サポート |
コンテナー標準出力収集 | サポート | サポート | サポート |
RuntimeClass | 非サポート | サポート (runV) | 非サポート |
Pod スケジューリング | 構成は不要です。 | 次のルールに基づいて構成を追加する必要があります。
| 構成は不要です。 |
HostNetwork | サポート | 非サポート | サポート |
ノードデータディスク | オプション | 必須。データディスクは 200 GiB 以上である必要があります。 | オプション |
ネットワークプラグイン |
|
|
|
Kube-proxy モード |
|
|
|
ボリュームプラグイン | CSI プラグイン (ACK Edge クラスターを除く) | CSI プラグイン | CSI プラグイン |
コンテナールートファイルシステム | OverlayFS | ディスククォータ構成の OverlayFS | OverlayFS |
同じノードに Docker と Sandboxed-Container の両方をデプロイすることはできません。異なるノードプールを作成して、Docker ランタイムノードと Sandboxed-Container ランタイムノードを一緒にデプロイできます。
Sandboxed-Container は containerd に基づいて実装されています。
kubectl get nodeまたはコンソールのノードリストを使用して Sandboxed-Container ノード情報を表示すると、ノードランタイムは containerd として表示されます。詳細については、「CRD を使用して Sidecar モードでコンテナーテキストログを収集する」をご参照ください。
デプロイメントアーキテクチャの観点からの比較
ランタイム | デプロイメントアーキテクチャ |
Docker | |
containerd | |
Sandboxed-Container v2 | |
Docker Engine と containerd が提供する一般的に使用されるコマンドの比較
Docker ランタイムと Sandboxed-Container ランタイムは、それぞれコンテナーエンジンとして Docker と containerd を使用し、それぞれがイメージとコンテナーを管理するための独自のコマンドラインインターフェイスを備えています。次の表に、一般的に使用されるコマンドをリストします。
操作 | containerd | Docker | |
crictl (推奨) | ctr | docker | |
コンテナーのクエリ |
|
|
|
コンテナー詳細のクエリ |
|
|
|
コンテナーログのクエリ |
| N/A |
|
コンテナーでのコマンドの実行 |
| N/A |
|
ローカルの stdin、stdout、stderr をコンテナーにアタッチ |
| N/A |
|
リソース使用量統計のクエリ |
| N/A |
|
コンテナーの作成 |
|
|
|
コンテナーの開始 |
|
|
|
コンテナーの停止 |
| ctr -n k8s.io task pause <container> |
|
コンテナーの削除 |
|
|
|
イメージのクエリ |
|
|
|
イメージ詳細のクエリ |
| N/A |
|
イメージのプル |
|
|
|
イメージのプッシュ | N/A |
|
|
イメージの削除 |
|
|
|
Pod のクエリ |
| N/A | N/A |
Pod 詳細のクエリ |
| N/A | N/A |
Pod の開始 |
| N/A | N/A |
Pod の停止 |
| N/A | N/A |