2.5. 언더클라우드를 로컬 레지스트리로 사용
오버클라우드 컨테이너 이미지를 저장하도록 언더클라우드에 로컬 레지스트리를 설정할 수 있습니다.
director를 사용하여 registry.redhat.io 에서 각 이미지를 가져오고 각 이미지를 언더클라우드에서 실행되는 docker-distribution 레지스트리로 내보낼 수 있습니다. director를 사용하여 오버클라우드 생성 프로세스 중에 오버클라우드를 생성하면 노드가 언더클라우드 docker-distribution 레지스트리에서 관련 이미지를 가져옵니다.
이렇게 하면 외부 네트워크 연결을 설정하지 않고 배포 프로세스를 가속화할 수 있는 내부 네트워크 내에 컨테이너 이미지의 네트워크 트래픽을 유지합니다.
절차
로컬 언더클라우드 레지스트리의 주소를 찾습니다. 이 주소는 다음 패턴을 사용합니다.
<REGISTRY_IP_ADDRESS>:8787
<REGISTRY_IP_ADDRESS>:8787Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전에
undercloud.conf파일의local_ip매개변수로 설정한 언더클라우드의 IP 주소를 사용합니다. 아래 명령의 경우 주소는192.168.24.1:8787이라고 가정합니다.registry.redhat.io에 로그인합니다.(undercloud) $ docker login registry.redhat.io --username $RH_USER --password $RH_PASSWD
(undercloud) $ docker login registry.redhat.io --username $RH_USER --password $RH_PASSWDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지를 로컬 레지스트리에 업로드하는 템플릿을 생성하고 해당 이미지를 참조하는 환경 파일을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
-e옵션을 사용하여 선택적 서비스에 대한 환경 파일을 포함합니다. -
사용자 지정 역할 파일을 포함하려면
-r옵션을 사용합니다. -
Ceph Storage를 사용하는 경우 Ceph Storage 컨테이너 이미지 위치
--set ceph_namespace,--set ceph_image,--set ceph_tag를 정의하는 추가 매개변수를 포함합니다.
-
다음 두 파일이 생성되었는지 확인합니다.
-
원격 소스의 컨테이너 이미지 정보가 포함된
local_registry_images.yaml이 파일을 사용하여 Red Hat Container Registry(registry.redhat.io)에서 언더클라우드로 이미지를 가져옵니다. -
overcloud_images.yaml은 언더클라우드의 최종 이미지 위치가 포함된 overcloud_images.yaml입니다. 배포에 이 파일을 포함합니다.
-
원격 소스의 컨테이너 이미지 정보가 포함된
원격 레지스트리에서 컨테이너 이미지를 가져와서 언더클라우드 레지스트리로 푸시합니다.
(undercloud) $ openstack overcloud container image upload \ --config-file /home/stack/local_registry_images.yaml \ --verbose
(undercloud) $ openstack overcloud container image upload \ --config-file /home/stack/local_registry_images.yaml \ --verboseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 이미지를 가져오는 데는 네트워크와 언더클라우드 디스크의 속도에 따라 시간이 걸릴 수 있습니다.
참고컨테이너 이미지는 약 10GB의 디스크 공간을 사용합니다.
이제 이미지가 언더클라우드의
docker-distribution레지스트리에 저장됩니다. 언더클라우드의docker-distribution레지스트리의 이미지 목록을 보려면 다음 명령을 실행합니다.(undercloud) $ curl http://192.168.24.1:8787/v2/_catalog | jq .repositories[]
(undercloud) $ curl http://192.168.24.1:8787/v2/_catalog | jq .repositories[]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고_catalog리소스는 100개의 이미지만 표시합니다. 더 많은 이미지를 표시하려면_catalog리소스가 포함된?n=<interger> 쿼리 문자열을 사용하여 더 많은 수의 이미지를 표시합니다.(undercloud) $ curl http://192.168.24.1:8787/v2/_catalog?n=150 | jq .repositories[]
(undercloud) $ curl http://192.168.24.1:8787/v2/_catalog?n=150 | jq .repositories[]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 이미지의 태그 목록을 보려면
skopeo명령을 사용합니다.(undercloud) $ curl -s http://192.168.24.1:8787/v2/rhosp13/openstack-keystone/tags/list | jq .tags
(undercloud) $ curl -s http://192.168.24.1:8787/v2/rhosp13/openstack-keystone/tags/list | jq .tagsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 태그가 지정된 이미지를 확인하려면
skopeo명령을 사용합니다.(undercloud) $ skopeo inspect --tls-verify=false docker://192.168.24.1:8787/rhosp13/openstack-keystone:13.0-44
(undercloud) $ skopeo inspect --tls-verify=false docker://192.168.24.1:8787/rhosp13/openstack-keystone:13.0-44Copy to Clipboard Copied! Toggle word wrap Toggle overflow
레지스트리 구성이 준비되었습니다.