3.6. OpenShift テンプレートを使用した APIcast のデプロイ

OpenShift テンプレートを使用して APIcast API ゲートウェイをデプロイすることができます。APIcast API ゲートウェイをデプロイすると、API の保護に役立ちます。また、その API に対するトラフィックを分析して監視することができます。

前提条件

  • APIcast のインストール に従って、Red Hat 3scale API Management 管理ポータルで APIcast を設定する必要があります。
  • インテグレーション設定でデプロイメントオプションに Self-managed Gateway が選択されていることを確認してください。
  • 手順を進めるには、ステージング環境と実稼働環境の両方を設定している必要があります。

手順

  1. デフォルトでは、developer としてログインしていて、次のステップに進むことができます。

    そうでなければ、前の手順でダウンロードおよびインストールした OpenShift クライアントツールから oc login コマンドを使用して OpenShift にログインします。デフォルトのログインクレデンシャルは username = "developer"password = "developer" です。

    oc login https://OPENSHIFT-SERVER-IP:8443

    出力に Login successful. が表示されるはずです。

  2. プロジェクトを作成します。この例では表示名を gateway と設定します。

    oc new-project "3scalegateway" --display-name="gateway" --description="3scale gateway demo"

    応答は以下のようになります。

    Now using project "3scalegateway" on server "https://172.30.0.112:8443"

    コマンドプロンプトのテキスト出力で提案される次のステップを無視し、以下に示す次のステップに進みます。

  3. プロジェクトを参照する新しいシークレットを作成します。<access_token> および <domain> はご自分のクレデンシャルに置き換えます。<access_token> および <domain> の詳細は、以下を参照してください。

    oc create secret generic apicast-configuration-url-secret --from-literal=password=https://<access_token>@<admin_portal_domain>  --type=kubernetes.io/basic-auth

    ここでは、<access_token> は 3scale アカウントの アクセストークン で、<domain>-admin.3scale.net は 3scale 管理ポータルの URL になります。

    応答は以下のようになります。

    secret/apicast-configuration-url-secret
  4. テンプレートから APIcast ゲートウェイのアプリケーションを作成し、デプロイメントを開始します。

    oc new-app -f https://raw.githubusercontent.com/3scale/3scale-amp-openshift-templates/3scale-2.10.0-GA/apicast-gateway/apicast.yml

    出力の最後に以下のメッセージが表示されるはずです。

        --> Creating resources with label app=3scale-gateway ...
            deploymentconfig "apicast" created
            service "apicast" created
        --> Success
            Run 'oc status' to view your app.

3.6.1. OpenShift コンソール経由でのルートの作成

OpenShift コンソール経由でルートを作成するには、以下の手順を実施します。

手順

  1. ブラウザーで OpenShift クラスターの Web コンソール https://OPENSHIFT-SERVER-IP:8443/console/ を開きます。

    OpenShift クラスターをリモートサーバーで起動した場合は、OPENSHIFT-SERVER-IP ではなく、--public-hostname で指定した値を使用します。

    OpenShift のログイン画面が表示されます。

    注記

    信頼できない Web サイトに関する警告が表示される可能性があります。有効な証明書を設定せずに、セキュアなプロトコルで Web コンソールにアクセスしようとしているため、この警告は想定内です。これは実稼働環境で行うべきではありませんが、このテスト設定では続行してこのアドレスの例外を作成することができます。

  2. 開発者クレデンシャルを使用してログインします。

    上記のコマンドラインから作成した gateway プロジェクトが含まれる、プロジェクトのリストが表示されます。gateway プロジェクトが表示されない場合は、別のユーザーで作成した可能性があり、ポリシーロールをこのユーザーに割り当てる必要があります。

  3. gateway リンクをクリックすると、Overview タブが表示されます。

    OpenShift は APIcast のコードをダウンロードし、デプロイメントを開始しました。デプロイメントの進行中に Deployment #1 running というメッセージが表示されることがあります。

    ビルドが完了すると、ユーザーインターフェイス (UI) が更新され、テンプレートで定義されているように、OpenShift によって開始した APIcast のインスタンス (1 Pod)が表示されます。

    各 APIcast インスタンスが起動すると、3scale 管理ポータルの Integration ページの設定を使用して、3scale から必要な設定をダウンロードします。

    OpenShift は 2 つの APIcast インスタンスを維持し、両方のインスタンスの状態を監視します。状態の悪い APIcast インスタンスは自動的に新しいインスタンスに置き換えられます。

  4. APIcast インスタンスでトラフィックを受信できるようにするには、ルートを作成する必要があります。Create Route をクリックして操作を開始します。

    上記の Public Base URL フィールドで 3scale に設定したホストを、http:// とポートを削除して入力します (例: gateway.openshift.demo)。次に、Create ボタンをクリックします。

    定義するすべての 3scale プロダクトについて、新規ルートを作成する必要があります。