7.3.8. OpenShift Container Platform 레지스트리 통합
OpenShift Container Platform을 독립형 컨테이너 이미지 레지스트리로 설치하여 레지스트리 기능만 제공할 수 있지만, OpenShift Container Platform 플랫폼에서 실행하면 장점이 있습니다.
OpenShift Container Platform 레지스트리에 대한 자세한 내용은 OpenShift Container Registry 독립형 배포 설치를 참조하십시오.
OpenShift Container Platform 레지스트리를 통합하는 데는 이전 섹션의 내용이 모두 적용됩니다. OpenShift Container Platform의 관점에서는 외부 레지스트리로 취급되지만, 몇 가지 추가 작업을 수행해야 합니다. 왜냐하면 이 레지스트리는 다중 테넌트 레지스트리이고 OpenShift Container Platform의 권한 부여 모델이 적용되므로 새로운 프로젝트를 생성할 때 레지스트리에서 해당 환경에 이 프로젝트를 독립형으로 생성하지 않기 때문입니다.
7.3.8.1. 레지스트리 프로젝트와 클러스터 연결 링크 복사링크가 클립보드에 복사되었습니다!
레지스트리는 레지스트리 포드 및 웹 인터페이스가 있는 전체 OpenShift Container Platform 환경이므로, 레지스트리에서 새 프로젝트를 생성하는 프로세스는 oc new-project 또는 oc create 명령줄을 사용하거나 웹 인터페이스를 통해 수행됩니다.
프로젝트가 생성되면 프로젝트 관리자에게 권한이 부여될 뿐만 아니라 일반 서비스 계정(builder, default 및 deployer)도 자동으로 생성됩니다. "익명" 사용자뿐만 아니라 다른 사용자도 이미지를 푸시하거나 가져올 수 있습니다.
모든 사용자가 레지스트리 내에서 이 새로운 프로젝트의 이미지를 가져오도록 허용하는 것과 같은 몇 가지 사용 사례가 있을 수 있지만, OpenShift Container Platform과 레지스트리 간에 1:1 프로젝트 관계를 유지하려는 경우 사용자가 해당 특정 프로젝트에서 이미지를 푸시하고 가져올 수 있으므로 몇 가지 단계가 필요합니다.
레지스트리 웹 콘솔에는 가져오기/푸시 작업에 사용할 토큰이 표시되지만, 토큰에서 세션 토큰이 있음을 나타내므로 만료됩니다. 특정 권한이 있는 서비스 계정을 생성하면 관리자가 서비스 계정의 권한을 제한할 수 있으므로, 예를 들어 이미지 푸시 또는 가져오기에 다른 서비스 계정을 사용할 수 있습니다. 그러면 서비스 계정 토큰이 만료되지 않으므로 사용자는 토큰 만료, 보안 재생성 및 기타 작업을 구성할 필요가 없습니다.
프로시저
새 프로젝트를 생성합니다.
oc new-project <my_project>
$ oc new-project <my_project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 레지스트리 프로젝트를 생성하십시오.
oc new-project <registry_project>
$ oc new-project <registry_project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 레지스트리 프로젝트에서 서비스 계정을 생성하십시오.
oc create serviceaccount <my_serviceaccount> -n <registry_project>
$ oc create serviceaccount <my_serviceaccount> -n <registry_project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 레지스트리 편집기역할을 사용하여 이미지를 푸시하고 가져오는 권한을 부여하십시오.oc adm policy add-role-to-user registry-editor -z <my_serviceaccount> -n <registry_project>
$ oc adm policy add-role-to-user registry-editor -z <my_serviceaccount> -n <registry_project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 가져오기 권한만 필요한 경우
registry-viewer역할을 사용할 수 있습니다.서비스 계정 토큰을 얻으십시오.
TOKEN=$(oc sa get-token <my_serviceaccount> -n <registry_project>)
$ TOKEN=$(oc sa get-token <my_serviceaccount> -n <registry_project>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow dockercfg보안을 생성하려면 토큰을 비밀번호로 사용하십시오.oc create secret docker-registry <my_registry> \ --docker-server=<myregistry.example.com> --docker-username=<notused> --docker-password=${TOKEN} --docker-email=<me@example.com>$ oc create secret docker-registry <my_registry> \ --docker-server=<myregistry.example.com> --docker-username=<notused> --docker-password=${TOKEN} --docker-email=<me@example.com>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 가져오기 작업을 수행하는 서비스 계정에 보안을 연결하여 레지스트리에서 이미지를 가져오려면
dockercfg보안을 사용하십시오. 이미지를 가져오는 기본 서비스 계정의 이름은default입니다.oc secrets link default <my_registry> --for=pull
$ oc secrets link default <my_registry> --for=pullCopy to Clipboard Copied! Toggle word wrap Toggle overflow S2I 기능을 사용하여 이미지를 푸시하려면
dockercfg보안이 S2I 포드에 마운트되므로, 빌드를 수행하는 적절한 서비스 계정에 연결되어야 합니다. 이미지를 작성하는 데 사용되는 기본 서비스 계정의 이름은builder입니다.oc secrets link builder <my_registry>
$ oc secrets link builder <my_registry>Copy to Clipboard Copied! Toggle word wrap Toggle overflow buildconfig에서 푸시 또는 가져오기 작업에 맞게 보안을 지정해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow