1.9.2. 認証されたイメージレジストリーの認証情報が間違っているか、欠落している

問題

Pod が起動していません。ImageStreams に次のエラーが表示されます。

! error: Import failed (InternalError): ...unauthorized: Please login to the Red Hat Registry

原因

OpenShift 4.x に 3scale をインストールすると、ImageStreams が参照するイメージをプルできないため、OpenShift は Pod の起動に失敗します。これは、Pod が指しているレジストリーに対して認証できないために発生します。

解決方法

手順

  1. 次のコマンドを入力して、コンテナーレジストリー認証の設定を確認します。

    $ oc get secret
    • シークレットが存在する場合は、ターミナルに次の出力が表示されます。

      threescale-registry-auth          kubernetes.io/dockerconfigjson        1         4m9s
    • ただし、出力が表示されない場合は、次の操作を行う必要があります。
  2. レジストリーサービスアカウントの作成 中に以前に設定した認証情報を使用して、シークレットを作成します。
  3. 提供されている oc create secret コマンドの <your-registry-service-account-username> および <your-registry-service-account-password> を置き換えて、OpenShift でのレジストリー認証の設定 の手順を使用します。
  4. APIManager リソースと同じ名前空間で threescale-registry-auth シークレットを生成します。<project-name> 内で次を実行する必要があります。

    oc project <project-name>
    oc create secret docker-registry threescale-registry-auth \
      --docker-server=registry.redhat.io \
      --docker-username="<your-registry-service-account-username>" \
      --docker-password="<your-registry-service-account-password>"
      --docker-email="<email-address>"
  5. APIManager リソースを削除して再作成します。

    $ oc delete -f apimanager.yaml
    apimanager.apps.3scale.net "example-apimanager" deleted
    
    $ oc create -f apimanager.yaml
    apimanager.apps.3scale.net/example-apimanager created

検証

  1. 次のコマンドを入力して、デプロイのステータスが Starting または Ready であることを確認します。その後、Pod が以下を生成し始めます。

    $ oc describe apimanager
    (...)
    Status:
      Deployments:
        Ready:
          apicast-staging
          system-memcache
          system-mysql
          system-redis
          zync
          zync-database
          zync-que
        Starting:
          apicast-production
          backend-cron
          backend-worker
          system-sidekiq
          system-sphinx
        Stopped:
          backend-listener
          backend-redis
          system-app
  2. 以下のコマンドを実行して、各 Pod のステータスを確認します。

    $ oc get pods
    NAME                               READY   STATUS             RESTARTS   AGE
    3scale-operator-66cc6d857b-sxhgm   1/1     Running            0          17h
    apicast-production-1-deploy        1/1     Running            0          17m
    apicast-production-1-pxkqm         0/1     Pending            0          17m
    apicast-staging-1-dbwcw            1/1     Running            0          17m
    apicast-staging-1-deploy           0/1     Completed          0          17m
    backend-cron-1-deploy              1/1     Running            0          17m