2.2. 認証済みレジストリーのサポート設定
3scale 2.6 リリースの一環で、コンテナーイメージが registry.access.redhat.com から registry.redhat.io にある認証済みレジストリーに移行されました。次の手順に従って、既存の 3scale インフラストラクチャーを準備し、新しい認証済みレジストリーをサポートします。
registry.redhat.ioにある新しい Red Hat 認証済みレジストリーに認証情報を作成します。-
レジストリーサービスアカウントとも呼ばれるレジストリートークンを作成します。このレジストリートークンは、
registry.redhat.ioに対して認証するために 3scale プラットフォームで使用することを目的としています。 - 認証情報を作成する方法の詳細は、Red Hat Container Registry Authentication を参照してください。
-
レジストリーサービスアカウントとも呼ばれるレジストリートークンを作成します。このレジストリートークンは、
レジストリーサービスアカウントが利用可能になったら、3scale インフラストラクチャーがデプロイされている OpenShift プロジェクトで、その認証情報を含む新しいシークレットを作成します。
- Red Hat Service Accounts パネルに移動して、OpenShift シークレット定義を取得します。
- 3scale インフラストラクチャーに使用するレジストリーサービスアカウントを選択します。
- OpenShift シークレット タブを選択し、シークレットのダウンロードリンクをクリックします。
Red Hat サービスアカウントパネルから OpenShift シークレットをダウンロードした後に、YAML ファイルの metadata セクションの name フィールドを変更し、既存の名前を
threescale-registry-auth名に置き換えます。シークレットは次のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を保存し、現在 3scale 2.5 がデプロイされている OpenShift プロジェクトにシークレットを作成します。
oc create -f the-secret-name.yml
$ oc create -f the-secret-name.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットを作成したら、その存在を確認できます。次のコマンドを実行すると、コンテンツを含むシークレットが返されます。
oc get secret threescale-registry-auth
$ oc get secret threescale-registry-authCopy to Clipboard Copied! Toggle word wrap Toggle overflow threescale-registry-authシークレットを使用するampサービスアカウントを作成します。これには、次の内容でファイルamp-sa.ymlを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ampサービスアカウントをデプロイします。oc create -f amp-sa.yml
$ oc create -f amp-sa.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow ampサービスアカウントが正しく作成されていることを確認します。次のコマンドは、imagePullSecrets セクションの要素の 1 つとしてthreescale-registry-authを含む、作成されたサービスアカウントをコンテンツとともに返します。oc get sa amp -o yaml
$ oc get sa amp -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 既存の 3scale プロジェクトのデフォルトサービスアカウントに適用された権限が、新しい
ampサービスアカウントにレプリケートされることを確認します。サービスアカウントの認証モードでサービスディカバリーが設定されている場合に、Configuring without OAuth server の説明に従い、cluster-role の表示権限を
system:serviceaccount:<3scale-project>:defaultユーザーに割り当て、同じ権限をsystem:serviceaccount:<3scale-project>:ampにも適用する必要があります。oc adm policy add-cluster-role-to-user view system:serviceaccount:<3scale-project>:amp
$ oc adm policy add-cluster-role-to-user view system:serviceaccount:<3scale-project>:ampCopy to Clipboard Copied! Toggle word wrap Toggle overflow
既存のすべての DeploymentConfigs を更新して、新しい
ampサービスアカウントを使用します。THREESCALE_DC_NAMES="apicast-production apicast-staging apicast-wildcard-router backend-cron backend-listener backend-redis backend-worker system-app system-memcache system-mysql system-redis system-sidekiq system-sphinx zync zync-database" for component in ${THREESCALE_DC_NAMES}; do oc patch dc $component --patch '{"spec":{"template": {"spec": {"serviceAccountName": "amp"}}}}' ; done$ THREESCALE_DC_NAMES="apicast-production apicast-staging apicast-wildcard-router backend-cron backend-listener backend-redis backend-worker system-app system-memcache system-mysql system-redis system-sidekiq system-sphinx zync zync-database" for component in ${THREESCALE_DC_NAMES}; do oc patch dc $component --patch '{"spec":{"template": {"spec": {"serviceAccountName": "amp"}}}}' ; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの出力には、次の行が含まれます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前のコマンドは、再起動をトリガーする 3scale の既存の DeploymentConfig もすべて再デプロイします。
DeploymentConfig が再起動されている間、それらのステータスが変化する場合があります。すべての DeploymentConfig が Ready になるまで待ちます。
次のコマンドを入力し、DeploymentConfig ごとに、Desired 列と Current 列の値が同じであり、0 以外であることをチェックして、DeploymentConfig のステータスを確認できます。
oc get dc
$ oc get dcCopy to Clipboard Copied! Toggle word wrap Toggle overflow
また、すべての Pod が Running ステータスであり、Ready になっていることを確認します。
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、すべての DeploymentConfig に
ampサービスアカウントが設定されていることを確認します。for component in ${THREESCALE_DC_NAMES}; do oc get dc $component -o yaml | grep -i serviceAccountName; done$ for component in ${THREESCALE_DC_NAMES}; do oc get dc $component -o yaml | grep -i serviceAccountName; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 前のコマンドの結果として、以前に設定された THREESCALE_DC_NAMES 環境変数で定義した要素数だけ次の行が繰り返されます。
serviceAccountName: amp
serviceAccountName: ampCopy to Clipboard Copied! Toggle word wrap Toggle overflow - この時点で、DeploymentConfigurations は Red Hat 認証レジストリーイメージを使用する準備ができています。