「コンテナ」の商用利用で考慮すべき5つのポイントとは?:コンテナネットワークの基礎知識【第3回】
コンテナを商用利用する際は、大量のコンテナを効率的に運用する必要があります。大規模運用の際、どのような点を考慮すべきなのでしょうか。
第2回「いまさら聞けない『Docker』とは? コンテナネットワークを知る基礎知識」では、コンテナ管理ツール「Docker」やコンテナネットワークの基礎を解説しました。コンテナは可搬性(ポータビリティ)の高さをはじめ、仮想マシンと比較してアプリケーションの実行環境を構築する上でメリットになる点が幾つかあります。しかしコンテナ実行環境が大規模になると運用管理作業の負荷が高まり、「Kubernetes」のようなコンテナオーケストレーターを使用する必要性が生じます。本稿では商用環境など大規模にコンテナを運用する際にどのような課題が生まれるのか、どのような点を考慮すべきなのかを解説します。
併せて読みたいお薦め記事
コンテナ関連記事
ネットワーク技術のトレンド
コンテナの利用は、Dockerの登場によって開発者の間で急速に広まりました。開発環境では単一ホストのコンテナ制御で十分ですが、商用環境で必要とされる可用性を確保するには、複数ホストのコンテナ制御が求められ、ホストのクラスタリングが必要になります。この際、新たに考慮すべき点が現れます。主要な5つの考慮点を紹介します。
考慮点1.コンテナスケジューリング
クラスタ化したコンテナホストに対して、コンテナをどのように配置するかは重要です。クラスタリソースを効率的に利用する、特定のホストにひも付けて配置する、特定のコンテナ同士を同一ホストに配置するなど、さまざまな配置の要求が出てきます。
考慮点2.データの永続化
Dockerではコンテナ内のストレージはコンテナの作成と同時に作成され、コンテナの削除と同時にストレージも削除されてしまいます。代わりにホストのファイルシステムを利用したり、外部のNFS(ネットワークファイルシステム)を利用したりすることが可能です。ただしクラスタ化した中・大規模のコンテナ環境において、一つ一つのコンテナにそうした設定をすることは運用上の大きな負荷になってしまいます。
考慮点3.コンテナ間通信
複数ホストにまたがりコンテナを展開すると、各コンテナ同士の通信をどのように実現するかも重要です。エンドユーザーからのアクセスが発生するWebサーバとしてコンテナを運用する場合は、インターネットなどの外部ネットワークとの通信が必要になります。この際、異なるネットワーク間でのデータ伝送のためにIPアドレスを変換するNAT(ネットワークアドレス変換)の処理が発生します。ホストOSのNATのルールを数百個のコンテナに対して適用することは現実的ではありません。
考慮点4.サービスディスカバリ(ドメイン名などのサービス識別子)
コンテナをクラスタ化すると、どのホストで対象のコンテナが稼働しているかを把握することが難しくなります。生成から破棄までのライフサイクルが短いコンテナは、IPアドレスが頻繁に変更されます。そのためコンテナ間通信はIPアドレスではなく、ホスト名やFQDN(完全修飾ドメイン名)といった固定された識別子による通信が主となります。この際、起動するコンテナはその都度DNSレコードを登録する必要があります。DNSレコードは、DNS(ドメインネームシステム)によってドメイン名とIPアドレスを対応させるための情報です。
考慮点5.宣言的インフラ
数百個、数千個のコンテナを扱う場合は、CLI(コマンドラインインタフェース)による設定や、設定ファイル(プログラムやOSの設定を記述したファイル)の変更といった命令的な制御は適しません。運用負荷が増大し、コンテナのメリットを享受することができなくなるからです。そのため大規模なコンテナ環境では、コンテナのあるべき状態を宣言し、冪等(べきとう)性(同じ操作を何度繰り返しても同じ結果が得られる性質)をチェックしながら、自動的に状態が修正される運用が求められます。こうして達成すべき目的を設定して、そのための手続きをシステムに任せるインフラを「宣言的インフラ」と呼びます。
このように、単一ホストでDockerを動作させる場合と異なり、クラスタ化されたコンテナ実行環境を運用しようとすると、さまざまな課題が生じます。第4回はこうした課題を解消するコンテナオーケストレーターを紹介します。
執筆者紹介
奈良昌紀(なら・まさのり) ネットワンシステムズ ビジネス開発本部 第1応用技術部
通信事業者のデータセンターにおいてネットワークやサーバの運用を経験後、ネットワンシステムズに入社。帯域制御やWAN高速化製品、仮想化関連製品を担当後、主にクラウドや仮想インフラの管理、自動化、ネットワーク仮想化の分野に注力している。
細谷典弘(ほそや・のりひろ) ネットワンシステムズ ビジネス開発本部第3応用技術部
データセンターネットワークの他、マルチクラウド向けのハードウェアやソフトウェアの最先端技術に関する調査・検証、技術支援などを担当。注目分野は「Kubernetes」。放送システムのIP化に向けた技術調査・検証も担当している。
千葉 豪(ちば・ごう) ネットワンシステムズ ビジネス開発本部 第1応用技術部
IaaS(Infrastructure as a Service)をはじめとしたクラウド基盤技術および管理製品を担当。コンテナ技術を中心とした開発・解析基盤の構築から運用、コンテナに関連した自動化技術や監視製品の技術検証などに注力している。
Copyright © ITmedia, Inc. All Rights Reserved.