1.7.2. 認証されたイメージレジストリーの認証情報が間違っているか、欠落している
問題
Pod が起動していません。ImageStreams に次のエラーが表示されます。
! error: Import failed (InternalError): ...unauthorized: Please login to the Red Hat Registry
! error: Import failed (InternalError): ...unauthorized: Please login to the Red Hat Registry
原因
OpenShift 4.x に 3scale をインストールすると、ImageStreams が参照するイメージをプルできないため、OpenShift は Pod の起動に失敗します。これは、Pod が指しているレジストリーに対して認証できないために発生します。
解決方法
手順
次のコマンドを入力して、コンテナーレジストリー認証の設定を確認します。
oc get secret
$ oc get secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットが存在する場合は、ターミナルに次の出力が表示されます。
threescale-registry-auth kubernetes.io/dockerconfigjson 1 4m9s
threescale-registry-auth kubernetes.io/dockerconfigjson 1 4m9s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ただし、出力が表示されない場合は、次の操作を行う必要があります。
- レジストリーサービスアカウントの作成 中に以前に設定した認証情報を使用して、シークレットを作成します。
-
提供されている
oc create secret
コマンドの<your-registry-service-account-username>
および<your-registry-service-account-password>
を置き換えて、OpenShift でのレジストリー認証の設定 の手順を使用します。 APIManager リソースと同じ名前空間で
threescale-registry-auth
シークレットを生成します。<project-name>
内で次を実行する必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow APIManager リソースを削除して再作成します。
oc delete -f apimanager.yaml oc create -f apimanager.yaml
$ oc delete -f apimanager.yaml apimanager.apps.3scale.net "example-apimanager" deleted $ oc create -f apimanager.yaml apimanager.apps.3scale.net/example-apimanager created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを入力して、デプロイのステータスが
Starting
またはReady
であることを確認します。その後、Pod が以下を生成し始めます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、各 Pod のステータスを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow