2.4. コンテナーレジストリー認証の設定
3scale 管理者は、3scale コンテナーイメージを OpenShift にデプロイする前に、registry.redhat.io との認証を設定します。
前提条件
- OpenShift Container Platform クラスターへアクセスできるクラスター管理者権限。
-
OpenShift
ocクライアントツールがインストール済みであること。詳細は、OpenShift CLI のドキュメント を参照してください。
手順
管理者として OpenShift クラスターにログインします。
oc login -u system:admin
$ oc login -u system:adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 3scale をデプロイするプロジェクトを開きます。
oc project your-openshift-project
oc project your-openshift-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat カスタマーポータルアカウントを使用して
docker-registryシークレットを作成します。threescale-registry-authは作成するシークレットに置き換えます。oc create secret docker-registry threescale-registry-auth \ --docker-server=registry.redhat.io \ --docker-username=CUSTOMER_PORTAL_USERNAME \ --docker-password=CUSTOMER_PORTAL_PASSWORD \ --docker-email=EMAIL_ADDRESS
$ oc create secret docker-registry threescale-registry-auth \ --docker-server=registry.redhat.io \ --docker-username=CUSTOMER_PORTAL_USERNAME \ --docker-password=CUSTOMER_PORTAL_PASSWORD \ --docker-email=EMAIL_ADDRESSCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力が表示されるはずです。
secret/threescale-registry-auth created
secret/threescale-registry-auth createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットをサービスアカウントにリンクして、シークレットをイメージをプルするために使用します。サービスアカウント名は、OpenShift Pod が使用する名前と一致する必要があります。以下は、
defaultサービスアカウントを使用する例になります。oc secrets link default threescale-registry-auth --for=pull
$ oc secrets link default threescale-registry-auth --for=pullCopy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットを
builderサービスアカウントにリンクし、ビルドイメージをプッシュおよびプルするためにシークレットを使用します。oc secrets link builder threescale-registry-auth
$ oc secrets link builder threescale-registry-authCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.1. レジストリーサービスアカウントの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift 上にデプロイされた 3scale 2.11 と共に共有環境で registry.redhat.io からのコンテナーイメージを使用するには、個々のユーザーの カスタマーポータル のクレデンシャルではなく、レジストリーサービスアカウント を使用する必要があります。
テンプレートまたは operator のどちらを使用して 3scale 2.8 を OpenShift にデプロイする場合でも、その前に以下に概略を示す手順に従う必要があります。両オプションともレジストリーの認証を使用するためです。
手順
- Registry Service Accounts のページに移動し、ログインします。
New Service Account をクリックします。Create a New Registry Service Account のページに表示されるフォームに入力します。
サービスアカウント の名前を追加します。
注記: フォームのフィールドの前に、決められた桁数のランダムに生成された数字の文字列が表示されます。
- Description を入力します。
- Create をクリックします。
- Registry Service Accounts のページに戻ります。
- 作成した サービスアカウント をクリックします。
接頭辞の文字列を含めたユーザー名 (例: 12345678|username) およびパスワードを書き留めます。
このユーザー名およびパスワードは、
registry.redhat.ioにログインするのに使用されます。注記Token Information のページには、認証トークンの使用方法を説明したタブがあります。たとえば、Token Information タブには、12345678|username フォーマットのユーザー名およびその下にパスワードの文字列が表示されます。
2.4.2. レジストリーサービスアカウントの変更 リンクのコピーリンクがクリップボードにコピーされました!
サービスアカウントを変更または削除することができます。Registry Service Account ページの表中の各認証トークン右側のポップアップメニューを使用して、その操作を行うことができます。
トークンを再生成したりサービスアカウントを削除したりすると、そのトークンを用いて認証および registry.redhat.io からコンテンツを取得しているシステムに影響を及ぼします。
各機能の説明は以下のとおりです。
Regenerate Token: 許可されたユーザーは、サービスアカウント に関連付けられたパスワードをリセットすることができます。
注記: サービスアカウント のユーザー名を変更することはできません。
- Update Description: 許可されたユーザーは、サービスアカウント の説明を更新することができます。
- Delete Account: 許可されたユーザーは、サービスアカウント を削除することができます。
2.4.3. 3scale テンプレートのインポート リンクのコピーリンクがクリップボードにコピーされました!
ワイルドカードルートは、3scale 2.6 の時点で 廃止されています。
- この機能は、バックグラウンドで Zync により処理されます。
- API プロバイダーが作成、更新、または削除されると、これらの変更が自動的にルートに反映されます。
3scale テンプレートを OpenShift クラスターにインポートするには、以下の手順を実施します。
手順
ターミナルセッションから、OpenShift にクラスター管理者としてログインします。
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトを選択するか新しいプロジェクトを作成します。
oc project <project_name>
oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc new-project <project_name>
oc new-project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc new-appコマンドを入力します。-
--fileオプションを使用して、ノードおよびエンタイトルメントの設定 でダウンロードした amp.yml ファイルへのパスを指定します。 --paramオプションを使用して、WILDCARD_DOMAINパラメーターに OpenShift クラスターのドメインを設定します。oc new-app --file /opt/amp/templates/amp.yml --param WILDCARD_DOMAIN=<WILDCARD_DOMAIN>
oc new-app --file /opt/amp/templates/amp.yml --param WILDCARD_DOMAIN=<WILDCARD_DOMAIN>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ターミナルには、マスターおよびテナント URL と、新たに作成された 3scale 管理ポータルのクレデンシャルが表示されます。この出力には以下の情報が含まれます。
- マスター管理者のユーザー名
- マスターのパスワード
- マスターのトークン情報
- テナントのユーザー名
- テナントのパスワード
- テナントのトークン情報
-
https://user-admin.3scale-project.example.com に admin/xXxXyz123 としてログインします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 後で確認できるようにするため、詳細を書き留めておきます。
以下のコマンドが返されると、OpenShift での 3scale デプロイメントが成功しています。
oc wait --for=condition=available --timeout=-1s $(oc get dc --output=name)
oc wait --for=condition=available --timeout=-1s $(oc get dc --output=name)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OpenShift への 3scale のデプロイメントに成功すると、ログインクレデンシャルが機能します。
2.4.4. 管理ポータルの URL の取得 リンクのコピーリンクがクリップボードにコピーされました!
テンプレートを使用して 3scale をデプロイすると、固定 URL (3scale-admin.${wildcardDomain}) のデフォルトテナントが作成されます。
3scale の Dashboard には、テナントの新しいポータル URL が表示されます。たとえば、<wildCardDomain> が 3scale-project.example.com の場合、管理ポータル URL は https://3scale-admin.3scale-project.example.com となります。
wildcardDomain は、インストール中に指定した <wildCardDomain> パラメーターです。以下のコマンドを使用し、ブラウザーでこの一意の URL を開きます。
xdg-open https://3scale-admin.3scale-project.example.com
xdg-open https://3scale-admin.3scale-project.example.com
オプションとして、マスターポータル URL (master.${wildcardDomain}) に新しいテナントを作成できます。
2.4.5. Amazon Simple Storage Service を使用した 3scale のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Amazon Simple Storage Service (Amazon S3) を使用した 3scale のデプロイは任意の手順です。以下の手順を使用して、Amazon S3 で 3scale をデプロイします。
手順
- amp-s3.yml ダウンロードします。
ターミナルセッションから OpenShift にログインします。
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトを選択するか新しいプロジェクトを作成します。
oc project <project_name>
oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow または
oc new-project <project_name>
oc new-project <project_name>
oc new-app コマンドを入力します。
-
--fileオプションを使用して、amp-s3.yml ファイルへのパスを指定します。 --paramオプションを以下の値を指定します。-
WILDCARD_DOMAIN: パラメーターは OpenShift クラスターのドメインに設定されます。 -
AWS_BUCKET: ターゲットバケット名に置き換えます。 -
AWS_ACCESS_KEY_ID: AWS 認証情報 ID に置き換えます。 -
AWS_SECRET_ACCESS_KEY: AWS 認証情報 KEY に置き換えます。 -
AWS_REGION: with the AWS: リージョンに置き換えます。 -
AWS_HOSTNAME: Amazon エンドポイント: AWS S3 と互換性のあるプロバイダーエンドポイントのホスト名。 -
AWS_PROTOCOL: デフォルト: HTTPS - AWS S3 と互換性のあるプロバイダーエンドポイントプロトコル。 -
AWS_PATH_STYLE: デフォルト:false-trueに設定すると、バケット名は常にリクエスト URI に残り、サブドメインとしてホストに移動されません。
-
管理ポータルでカスタム名を設定するには
--paramオプションを指定してTENANT_NAMEパラメーターを指定します。省略した場合、デフォルトは 3scale に設定されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ターミナルには、マスターおよびテナント URL と、新たに作成された 3scale 管理ポータルの認証情報が表示されます。この出力には以下の情報が含まれます。
- マスター管理者のユーザー名
- マスターのパスワード
- マスターのトークン情報
- テナントのユーザー名
- テナントのパスワード
- テナントのトークン情報
-
https://user-admin.3scale-project.example.com に admin/xXxXyz123 としてログインします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 後で確認できるようにするため、詳細を書き留めておきます。
以下のコマンドが返されると、OpenShift での 3scale デプロイメントが成功しています。
oc wait --for=condition=available --timeout=-1s $(oc get dc --output=name)
oc wait --for=condition=available --timeout=-1s $(oc get dc --output=name)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OpenShift への 3scale のデプロイメントに成功すると、ログインクレデンシャルが機能します。
2.4.6. PostgreSQL を使用した 3scale のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
PostgreSQL を使用した 3scale のデプロイは、任意の手順です。以下の手順を使用して、PostgreSQL で 3scale をデプロイします。
手順
- amp-postgresql.yml をダウンロードします。
ターミナルセッションから OpenShift にログインします。
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトを選択するか新しいプロジェクトを作成します。
oc project <project_name>
oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow または
oc new-project <project_name>
oc new-project <project_name>
oc new-app コマンドを入力します。
-
--fileオプションを使用して、amp-postgresql.yml ファイルへのパスを指定します。 -
--paramオプションを以下の値を指定します。 -
WILDCARD_DOMAIN: パラメーターは OpenShift クラスターのドメインに設定されます。 管理ポータルでカスタム名を設定するには
--paramオプションを指定してTENANT_NAMEパラメーターを指定します。省略した場合、デフォルトは 3scale に設定されます。oc new-app --file /path/to/amp-postgresql.yml \ --param WILDCARD_DOMAIN=<a-domain-that-resolves-to-your-ocp-cluster.com> \ --param TENANT_NAME=3scale \
oc new-app --file /path/to/amp-postgresql.yml \ --param WILDCARD_DOMAIN=<a-domain-that-resolves-to-your-ocp-cluster.com> \ --param TENANT_NAME=3scale \Copy to Clipboard Copied! Toggle word wrap Toggle overflow ターミナルには、マスターおよびテナント URL と、新たに作成された 3scale 管理ポータルの認証情報が表示されます。この出力には以下の情報が含まれます。
- マスター管理者のユーザー名
- マスターのパスワード
- マスターのトークン情報
- テナントのユーザー名
- テナントのパスワード
- テナントのトークン情報
-
https://user-admin.3scale-project.example.com に admin/xXxXyz123 としてログインします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 後で確認できるようにするため、詳細を書き留めておきます。
以下のコマンドが返されると、OpenShift での 3scale デプロイメントが成功しています。
oc wait --for=condition=available --timeout=-1s $(oc get dc --output=name)
oc wait --for=condition=available --timeout=-1s $(oc get dc --output=name)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OpenShift への 3scale のデプロイメントに成功すると、ログインとクレデンシャルが機能します。
2.4.7. SMTP 変数の設定 (任意) リンクのコピーリンクがクリップボードにコピーされました!
OpenShift は 通知の送信 および 新規ユーザーの招待 に電子メールを使用します。この機能を使用する場合は、独自の SMTP サーバーを提供し、system-smtp シークレットで SMTP 変数を設定する必要があります。
system-smtp シークレットで SMTP 変数を設定するには、以下の手順を実行します。
手順
OpenShift にログインしていない場合はログインします。
oc login
oc loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc patchコマンドを使用してsecretタイプを指定し (system-smtpはシークレット名)、続いて-pオプションを指定し、以下の変数に対して JSON 形式で新しい値を指定します。Expand 変数 説明 address
リモートメールサーバーをリレーとして指定できます。
username
メールサーバーのユーザー名を指定します。
password
メールサーバーのパスワードを指定します。
domain
HELO ドメインを指定します。
port
メールサーバーが新しい接続をリッスンするポートを指定します。
authentication
メールサーバーの認証タイプを指定します。指定できる値は
plain(パスワードをクリアテキストで送信)、login(パスワードを Base64 エンコードで送信)、またはcram_md5(ハッシュ関数に Message Digest 5 アルゴリズムを使用し認証情報を交換) です。openssl.verify.mode
TLS の使用時に OpenSSL が証明書をチェックする方法を指定します。使用できる値は
noneまたはpeerです。例
oc patch secret system-smtp -p '{"stringData":{"address":"<your_address>"}}' oc patch secret system-smtp -p '{"stringData":{"username":"<your_username>"}}' oc patch secret system-smtp -p '{"stringData":{"password":"<your_password>"}}'oc patch secret system-smtp -p '{"stringData":{"address":"<your_address>"}}' oc patch secret system-smtp -p '{"stringData":{"username":"<your_username>"}}' oc patch secret system-smtp -p '{"stringData":{"password":"<your_password>"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
secret 変数を設定した後、
system-appおよびsystem-sidekiqPod を再デプロイします。oc rollout latest dc/system-app oc rollout latest dc/system-sidekiq
oc rollout latest dc/system-app oc rollout latest dc/system-sidekiqCopy to Clipboard Copied! Toggle word wrap Toggle overflow ロールアウトのステータスを表示し、読み込みが完了したことを確認します。
oc rollout status dc/system-app oc rollout status dc/system-sidekiq
oc rollout status dc/system-app oc rollout status dc/system-sidekiqCopy to Clipboard Copied! Toggle word wrap Toggle overflow