2.9.2. 인증된 이미지 레지스트리의 인증 정보가 잘못되었거나 누락됨
문제
Pod가 시작되지 않습니다. 이미지 스트림에 다음 오류가 표시됩니다.
! error: Import failed (InternalError): ...unauthorized: Please login to the Red Hat Registry
원인
OpenShift 4.x에 3scale을 설치하는 동안 OpenShift는 이미지 스트림이 참조하는 이미지를 가져올 수 없기 때문에 포드를 시작하지 못합니다. 이는 Pod가 가리키는 레지스트리에 대해 인증할 수 없기 때문에 발생합니다.
해결책
절차
다음 명령을 입력하여 컨테이너 레지스트리 인증 구성을 확인합니다.
$ oc get secret
시크릿이 있는 경우 터미널에 다음 출력이 표시됩니다.
threescale-registry-auth kubernetes.io/dockerconfigjson 1 4m9s
- 그러나 출력이 표시되지 않는 경우 다음을 수행해야 합니다.
- 이전에 레지스트리 서비스 계정을 생성하는 동안 설정한 인증 정보를 사용하여 보안을 생성합니다.
-
제공된
oc create secret
명령에서 <your- registry-service-account-username> 및 <
단계를 사용합니다.your-
registry-service-account-password >를 교체하여 OpenShift에서 레지스트리 인증 구성 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>"
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
검증
다음 명령을 입력하여 배포 상태가
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
다음 명령을 입력하여 각 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