3.5. Docker コンテナー環境への APIcast のデプロイ
ここでは、Docker コンテナーエンジン内部に Red Hat 3scale API Management API ゲートウェイとして使用する準備が整っている APIcast をデプロイする方法を、手順をおって説明します。
Docker コンテナー環境に APIcast をデプロイする場合、サポートされる Red Hat Enterprise Linux (RHEL) および Docker のバージョンは以下のとおりです。
- RHEL 7.7
- Docker 1.13.1
前提条件
- 3章APIcast のインストール に従って、3scale 管理ポータルで APIcast を設定している。
Red Hat Ecosystem Catalog へのアクセス
- レジストリーサービスアカウントを作成するには、レジストリーサービスアカウントの作成 を参照してください。
Docker コンテナー環境に APIcast をデプロイするには、以下のセクションに概略を示す手順を実施します。
3.5.1. Docker コンテナー環境のインストール
本セクションでは、RHEL 7 に Docker コンテナー環境を設定する手順を説明します。
Red Hat が提供する Docker コンテナーエンジンは、RHEL の Extras チャンネルの一部としてリリースされています。追加のリポジトリーを有効にするには、Subscription Manager または yum-config-manager オプションを使用できます。詳細は、RHEL の製品ドキュメント を参照してください。
Amazon Web Services (AWS)、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに RHEL 7 をデプロイするには、以下の手順を実施します。
手順
-
sudo yum repolist all
ですべてのリポジトリーを一覧表示します。 -
*-extras
リポジトリーを探します。 -
sudo yum-config-manager --enable rhui-REGION-rhel-server-extras
を実行し、extras
リポジトリーを有効にします。 -
sudo yum install docker
を実行し、Docker コンテナー環境のパッケージをインストールします。
関連情報
他のオペレーティングシステムをお使いの場合は、以下の Docker ドキュメントを参照してください。
3.5.2. Docker コンテナー環境ゲートウェイの実行
3scale 2.11 では、RHEL7 および Docker のコンテナーとして実行されている APIcast デプロイメントのサポートは非推奨になりました。今後のリリースでは、3scale は RHEL8 および Podman のみをサポートします。Self-managed APIcast をコンテナーとして実行している場合は、インストールをサポート対象の設定にアップグレードしてください。
Docker コンテナー環境ゲートウェイを実行するには、以下の手順を実施します。
手順
Docker デーモンを開始します。
sudo systemctl start docker.service
Docker デーモンが実行されているか確認します。
sudo systemctl status docker.service
Red Hat レジストリーから、そのまま使用できる Docker コンテナーエンジンのイメージをダウンロードします。
sudo docker pull registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11
Docker コンテナーエンジンで APIcast を実行します。
sudo docker run --name apicast --rm -p 8080:8080 -e THREESCALE_PORTAL_ENDPOINT=https://<access_token>@<domain>-admin.3scale.net registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11
ここで、
<access_token>
は 3scale Account Management API のアクセストークンに置き換えます。アクセストークンの代わりにプロバイダーキーを使用することもできます。<domain>-admin.3scale.net
は 3scale 管理ポータルの URL です。
このコマンドは、apicastという Docker コンテナーエンジンをポート 8080
で実行し、3scale 管理ポータルから JSON 設定ファイルを取得します。その他の設定オプションについては、APIcast のインストール を参照してください。
3.5.2.1. docker コマンドのオプション
docker run
コマンドでは、以下のオプションを使用できます。
-
--rm
: 終了時にコンテナーを自動的に削除します。 -
-d
または--detach
: コンテナーをバックグラウンドで実行し、コンテナー ID を出力します。このオプションを指定しないと、コンテナーはフォアグラウンドモードで実行され、CTRL+c
を使用して停止することができます。デタッチモードで起動された場合、docker attach
コマンド (例:docker attach apicast
) を使用するとコンテナーに再アタッチすることができます。 -
-p
または--publish
: コンテナーのポートをホストに公開します。値の書式は<host port="">:<container port="">
とする必要があります。したがって、-p 80:8080
の場合は、コンテナーのポート8080
をホストマシンのポート80
にバインドします。たとえば、Management API はポート8090
を使用するため、-p 8090:8090
をdocker run
コマンドに追加してこのポートを公開します。 -
-e
または--env
: 環境変数を設定します。 -
-v
または--volume
: ボリュームをマウントします。値は通常<host path="">:<container path="">[:<options>]
で表されます。<options>
はオプションの属性で、ボリュームを読み取り専用に指定するには、:ro
に設定します (デフォルトでは読み取り/書き込みモードでマウントされます)。たとえば、-v /host/path:/container/path:ro
と設定します。
3.5.2.2. APIcast のテスト
以下の手順は、Docker コンテナーエンジンが独自の設定ファイルと、3scale レジストリーからの Docker コンテナーイメージで実行されるようにします。呼び出しは APIcast を介してポート 8080
でテストでき、3scale アカウントから取得できる正しい認証クレデンシャルを提供できます。
テストコールは、APIcast が適切に実行されていることを確認するだけでなく、認証とレポートが正常に処理されたことも確認します。
呼び出しに使用するホストが Integration ページの Public Base URL フィールドに設定されたホストと同じであるようにしてください。
関連情報
- 使用できるオプションの詳細については、Docker run reference を参照してください。
3.5.3. 関連情報
- テスト済みのサポート対象設定の情報については、Red Hat 3scale API Management のサポート対象設定 を参照してください。
3.5.4. Podman への APIcast のデプロイ
ここでは、Pod Manager (Podman) コンテナー環境に Red Hat 3scale API Management API ゲートウェイとして使用される APIcast をデプロイする方法を、手順を追って説明します。
Podman コンテナー環境に APIcast をデプロイする場合、サポートされる Red Hat Enterprise Linux (RHEL) および Podman のバージョンは以下のとおりです。
- RHEL 8
- Podman 1.4.2
前提条件
- 3章APIcast のインストール に従って、3scale 管理ポータルで APIcast を設定している。
Red Hat Ecosystem Catalog へのアクセス
- レジストリーサービスアカウントを作成するには、レジストリーサービスアカウントの作成 を参照してください。
Podman コンテナー環境に APIcast をデプロイするには、以下のセクションに概略を示す手順を実施します。
3.5.4.1. Podman コンテナー環境のインストール
本セクションでは、RHEL 8 に Podman コンテナー環境を設定する手順を説明します。Docker は RHEL 8 に含まれていないため、コンテナーの操作には Podman を使用します。
Podman と RHEL 8 の使用については、コンテナーのコマンドに関するリファレンスドキュメント を参照してください。
手順
Podman コンテナー環境パッケージをインストールします。
sudo dnf install podman
関連情報
他のオペレーティングシステムをお使いの場合は、以下の Podman のドキュメントを参照してください。
3.5.4.2. Podman 環境の実行
Podman コンテナー環境を実行するには、以下の手順に従います。
手順
Red Hat レジストリーから、そのまま使用できる Podman コンテナーのイメージをダウンロードします。
podman pull registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11
Podman で APIcast を実行します。
podman run --name apicast --rm -p 8080:8080 -e THREESCALE_PORTAL_ENDPOINT=https://<access_token>@<domain>-admin.3scale.net registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11
ここで、
<access_token>
は 3scale Account Management API のアクセストークンに置き換えます。アクセストークンの代わりにプロバイダーキーを使用することもできます。<domain>-admin.3scale.net
は 3scale 管理ポータルの URL です。
このコマンドは、apicastという Podman コンテナーエンジンをポート 8080
で実行し、3scale 管理ポータルから JSON 設定ファイルを取得します。その他の設定オプションについては、APIcast のインストール を参照してください。
3.5.4.2.1. Podman による APIcast のテスト
以下の手順は、Podman コンテナーエンジンが独自の設定ファイルと、3scale レジストリーからの Podman コンテナーイメージで実行されるようにします。呼び出しは APIcast を介してポート 8080
でテストでき、3scale アカウントから取得できる正しい認証クレデンシャルを提供できます。
テストコールは、APIcast が適切に実行されていることを確認するだけでなく、認証とレポートが正常に処理されたことも確認します。
呼び出しに使用するホストが Integration ページの Public Base URL フィールドに設定されたホストと同じであるようにしてください。
3.5.4.3. podman
コマンドのオプション
podman
コマンドでは、以下に例を示すオプションを使用することができます。
-
-d
: デタッチモード でコンテナーを実行し、コンテナー ID を出力します。このオプションを指定しないと、コンテナーはフォアグラウンドモードで実行され、CTRL+c
を使用して停止することができます。デタッチモードで起動された場合、podman attach
コマンド (例:podman attach apicast
) を使用するとコンテナーに再アタッチすることができます。 -
ps
および-a
: Podmanps
を使用して、作成中および実行中のコンテナーを一覧表示します。ps
コマンドに-a
を追加すると (例:podman ps -a
)、すべてのコンテナー (実行中および停止中の両方) が表示されます。 -
inspect
および-l
: 実行中のコンテナーを調べます。たとえば、inspect
を使用して、コンテナーに割り当てられた ID を表示します。-l
を使用すると、最新のコンテナーの詳細を取得できます (たとえばpodman inspect -l | grep Id\":
)。
3.5.4.4. 関連情報
- テスト済みのサポート対象設定の情報については、Red Hat 3scale API Management のサポート対象設定 を参照してください。
- Podman を初めて使用する場合は、Basic Setup and Use of Podman を参照してください。