コンテナの管理ツールについて

>100 Views

January 18, 24

スライド概要

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

コンテナの管理ツールについて

2.

コンテナの基本 ・1つのコンテナに1つのアプリケーションが 入っている ・コンテナ同士は干渉しない ・ほかのホストへ持ち出しが可能 ・簡単に作成・破棄が可能

3.

コンテナエンジン「DOCKER」 (基本的に単一の)ホスト上でのコンテナ管理を行うソフトウェア ホスト ホストの ファイルシステム ホストの ネットワーク システム Eth0 Docker上でコンテナを実行し、ホスト-コンテナ間や コンテナ同士のやり取りを仲介する

4.

コンテナオーケストレーション ・ホストが単一では、可用性や耐障害性に不安がある ・複数ホスト間のロードバランシングやネットワーク管理を 自前で行うのはかなり手間がかかる コンテナオーケストレーションツールで、 複数ホスト上のコンテナ管理を楽に行える ・Kubernetes ・AWS ECS ・Docker Swarm など これらのソフトウェアにより、上記の問題を解消できる

5.

KUBERNETES クラスター マスターノード マスターノードがワーカーノードを 監視し、状態を一定に保つ。 1つのホストが1​つのノードを持つ ワーカーノード ポッドA ワーカーノード ポッドA 最小の実行環境単位であるポッドが コンテナや共有ストレージ、 固有のIPアドレスを持つ ポッドB 高負荷時はポッドを別のノードに 複製してスケーリングを行う ポッドC

6.

AWS ECS(EC2タイプ) サービスとタスクを1:1で作成し、 サービスにタスクを監視させる サービスにより、タスクの 状態維持やスケーリングを行う ECS container agentを持つ インスタンスがクラスターを 形成する。 EC2に後からagentをインストール することもできる 細かな差異はあるものの、 基本的な機能はk8sと大差はない ECSクラスタ ー コンテナ インスタンス サービスA コンテナ インスタンス タスクA タスクA サービスB タスクB タスクB ECS container agent タスクB ECS container agent

7.

さらにインフラ管理を楽にするために 複数ホスト上のコンテナ管理は楽になったが、 開発者は次の管理も行わなければならない ・コンテナそのもの ・コンテナを実行するホストマシン 先述したツールが行うスケーリングは 実行ホストのリソース範囲内で行われるものである。 それを超える場合はマシン数などの調節が必要であり、 適切なリソース使用が難しくなる コンテナを実行するマシンの管理を 楽にするためにFargateが作られた

8.

AWS ECS(FARGATEタイプ) Fargate クラスターの管理が不要になり、 リソースの見積もりやモニタリングが 必要なくなる タスクに割り当てるCPUやメモリを 設定するだけでリソースの調達を 行ってくれる ホストマシンの管理が不要になり、 セキュリティ強化につながる タスクA EC2タイプより値段が高いが、 適切なリソース使用により コストパフォーマンスが向上し、 試算も楽になる タスクA タスクC サービスD サービスB タスクB シームレスなスケーリングを 自動で行ってくれる サービスC サービスA タスクD タスクD タスクD

9.

コンテナ管理ツールの進化 ・軽量で様々な応用法があるコンテナ仮想化技術は めざましく進歩している ・特にFargateの進化は速く、一週間で情報が 古くなることも多い ・AWS EKSがFargateに対応するなど、 コンテナ管理の利便性は日々向上している