コンテナ サービス間の通信とホスト間の負荷分散に伴う課題は、リンクと公開サービスによって解決されます。コンテナに使用するリンクの設定は、Containers で構成します。

始める前に

  • サポートされている vRealize Automation 環境で Containers for vRealize Automation が有効になっていることを確認します。

  • コンテナ管理者またはコンテナ アーキテクトのロールの権限があることを確認します。

  • サービスをリンクするためのブリッジ ネットワークが利用できることを確認します。

  • 対象サービスの内部ポートが公開されていることを確認します。サービス間で通信を行えるよう、サービスは他の任意のポートにマッピングできますが、そのホストの外部からアクセスできることが必要です。

  • サービスのホスト同士が相互にアクセスできることを確認します。

このタスクについて

アプリケーションでは、リンクを使用して複数のサービス間の通信を実現できます。Containers におけるリンクは Docker リンクに似ていますが、その接続の対象はホスト間のコンテナです。リンクは、サービス名とエイリアスという 2 つの要素から成ります。サービス名は、呼び出しの対象となるサービスまたはテンプレートの名前です。エイリアスは、サービスと通信を行うときに使用するホスト名です。

たとえば、Web サービスとデータベース サービスを含んだアプリケーションがあり、Web サービスからデータベース サービスへのリンクを my-db というエイリアスを使って定義する場合、その Web サービス アプリケーションは、my-db:{PORT_OF_DB} への TCP 接続を開くことになります。PORT_OF_DB は、コンテナの設定でホストに割り当てられたパブリック ポートに関係なく、データベースが待機するポートです。MySQL がそのデフォルト ポートである 3306 でアップデートの有無をチェックし、コンテナ ホストの公開ポートが 32799 である場合、この Web アプリケーションは、my-db:3306 でデータベースにアクセスすることになります。

注:

リンクの代わりにネットワークを使用することをお勧めします。現在リンクは、Docker のレガシー機能となっており、コンテナ クラスタをリンクするうえで、かなりの制限が存在します。次に示したのは、その制限の例です。

  • Docker では、同じエイリアスを持つ複数のリンクがサポートされません。Containers for vRealize Automation によるリンク エイリアスの自動生成を有効にすることをお勧めします。

  • コンテナ ランタイムのリンクは更新できません。リンクされたクラスタをスケール アップまたはスケール ダウンしたとき、それに依存するコンテナのリンクは更新されません。

手順

  1. vRealize Automation にログインします。
  2. コンテナ タブをクリックします。
  3. 左側のペインの テンプレート をクリックします。
  4. テンプレートまたはイメージを編集します。
  5. テンプレートを編集するには次の手順に従います。
    1. 開きたいテンプレートの右上のセクションの 編集 をクリックします。
    2. そのテンプレートに複数のテンプレートが含まれている場合は、編集するテンプレートを指定し、開きたいテンプレートの右上のセクションの 編集 をクリックします。
  6. イメージを編集するには次の手順に従います。
    1. イメージの プロビジョニング ボタンの横にある矢印をクリックし、追加情報の入力 をクリックします。

    コンテナのプロビジョニング ページまたは コンテナ定義の編集 ページが表示されます。編集可能なプロパティと設定がカテゴリごとにまとめられています。

  7. 基本 タブをクリックします。
  8. サービス テキスト ボックスに、コンテナが依存しているサービスをカンマ区切りで入力します。
  9. そのサービスの記述名を エイリアス テキスト ボックスに入力します。サービスが複数ある場合はカンマ区切りで入力してください。
  10. 保存 をクリックします。