2.2. 認証済みレジストリーのサポート設定


3scale 2.6 リリースの一環で、コンテナーイメージが registry.access.redhat.com から registry.redhat.io にある認証済みレジストリーに移行されました。次の手順に従って、既存の 3scale インフラストラクチャーを準備し、新しい認証済みレジストリーをサポートします。

  1. registry.redhat.io にある新しい Red Hat 認証済みレジストリーに認証情報を作成します。

    • レジストリーサービスアカウントとも呼ばれるレジストリートークンを作成します。このレジストリートークンは、registry.redhat.io に対して認証するために 3scale プラットフォームで使用することを目的としています。
    • 認証情報を作成する方法の詳細は、Red Hat Container Registry Authentication を参照してください。
  2. レジストリーサービスアカウントが利用可能になったら、3scale インフラストラクチャーがデプロイされている OpenShift プロジェクトで、その認証情報を含む新しいシークレットを作成します。

    1. Red Hat Service Accounts パネルに移動して、OpenShift シークレット定義を取得します。
    2. 3scale インフラストラクチャーに使用するレジストリーサービスアカウントを選択します。
    3. OpenShift シークレット タブを選択し、シークレットのダウンロードリンクをクリックします。
  3. Red Hat サービスアカウントパネルから OpenShift シークレットをダウンロードした後に、YAML ファイルの metadata セクションの name フィールドを変更し、既存の名前を threescale-registry-auth 名に置き換えます。

    シークレットは次のようになります。

    apiVersion: v1
    kind: Secret
    metadata:
      name: threescale-registry-auth
    data:
      .dockerconfigjson: a-base64-encoded-string-containing-auth-credentials
    type: kubernetes.io/dockerconfigjson
  4. 変更を保存し、現在 3scale 2.5 がデプロイされている OpenShift プロジェクトにシークレットを作成します。

    $ oc create -f the-secret-name.yml
  5. シークレットを作成したら、その存在を確認できます。次のコマンドを実行すると、コンテンツを含むシークレットが返されます。

    $ oc get secret threescale-registry-auth
  6. threescale-registry-auth シークレットを使用する amp サービスアカウントを作成します。これには、次の内容でファイル amp-sa.yml を作成します。

    apiVersion: v1
    kind: ServiceAccount
    imagePullSecrets:
    - name: threescale-registry-auth
    metadata:
      name: amp
  7. amp サービスアカウントをデプロイします。

    $ oc create -f amp-sa.yml
  8. amp サービスアカウントが正しく作成されていることを確認します。次のコマンドは、imagePullSecrets セクションの要素の 1 つとして threescale-registry-auth を含む、作成されたサービスアカウントをコンテンツとともに返します。

    $ oc get sa amp -o yaml
  9. 既存の 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
  10. 既存のすべての 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

    コマンドの出力には、次の行が含まれます。

    deploymentconfig.apps.openshift.io/apicast-production patched
    deploymentconfig.apps.openshift.io/apicast-staging patched
    deploymentconfig.apps.openshift.io/apicast-wildcard-router patched
    deploymentconfig.apps.openshift.io/backend-cron patched
    deploymentconfig.apps.openshift.io/backend-listener patched
    deploymentconfig.apps.openshift.io/backend-redis patched
    deploymentconfig.apps.openshift.io/backend-worker patched
    deploymentconfig.apps.openshift.io/system-app patched
    deploymentconfig.apps.openshift.io/system-memcache patched
    deploymentconfig.apps.openshift.io/system-mysql patched
    deploymentconfig.apps.openshift.io/system-redis patched
    deploymentconfig.apps.openshift.io/system-sidekiq patched
    deploymentconfig.apps.openshift.io/system-sphinx patched
    deploymentconfig.apps.openshift.io/zync patched
    deploymentconfig.apps.openshift.io/zync-database patched

    前のコマンドは、再起動をトリガーする 3scale の既存の DeploymentConfig もすべて再デプロイします。

  11. DeploymentConfig が再起動されている間、それらのステータスが変化する場合があります。すべての DeploymentConfig が Ready になるまで待ちます。

    • 次のコマンドを入力し、DeploymentConfig ごとに、Desired 列と Current 列の値が同じであり、0 以外であることをチェックして、DeploymentConfig のステータスを確認できます。

      $ oc get dc
  12. また、すべての Pod が Running ステータスであり、Ready になっていることを確認します。

    $ oc get pods
  13. 次のコマンドを使用して、すべての DeploymentConfig に amp サービスアカウントが設定されていることを確認します。

    $ for component in ${THREESCALE_DC_NAMES}; do oc get dc $component -o yaml | grep -i serviceAccountName; done
  14. 前のコマンドの結果として、以前に設定された THREESCALE_DC_NAMES 環境変数で定義した要素数だけ次の行が繰り返されます。

    serviceAccountName: amp
  15. この時点で、DeploymentConfigurations は Red Hat 認証レジストリーイメージを使用する準備ができています。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.