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.
-
선택적 서비스에 대한 환경 파일을 포함하려면
다음 두 파일이 생성되었는지 확인합니다.
-
remote 소스의 컨테이너 이미지 정보가 포함된
local_registry_images.yaml. 이 파일을 사용하여 Red Hat Container Registry(registry.redhat.io)에서 언더클라우드로 이미지를 가져옵니다. -
overcloud_images.yaml- 언더클라우드의 최종 이미지 위치가 포함됩니다. 이 파일을 배포와 함께 포함합니다.
-
remote 소스의 컨테이너 이미지 정보가 포함된
원격 레지스트리에서 컨테이너 이미지를 가져와서 언더클라우드 레지스트리로 푸시합니다.
(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
레지스트리 구성이 준비되었습니다.