2.5. 언더클라우드를 로컬 레지스트리로 사용
오버클라우드 컨테이너 이미지를 저장하도록 언더클라우드에 로컬 레지스트리를 구성할 수 있습니다.
director를 사용하여 registry.redhat.io
에서 각 이미지를 가져와서 언더클라우드에서 실행되는 docker-distribution
레지스트리로 각 이미지를 푸시할 수 있습니다. 오버클라우드 생성 프로세스 중에 director를 사용하여 오버클라우드를 생성하면 노드가 언더클라우드 docker-distribution
레지스트리에서 관련 이미지를 가져옵니다.
이렇게 하면 컨테이너 이미지의 네트워크 트래픽이 내부 네트워크에 연결되어 있어 외부 네트워크 연결을 제한하지 않고 배포 프로세스의 속도를 높일 수 있습니다.
절차
로컬 언더클라우드 레지스트리의 주소를 찾습니다. 주소는 다음 패턴을 사용합니다.
<REGISTRY_IP_ADDRESS>:8787
<REGISTRY_IP_ADDRESS>:8787
Copy 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_PASSWD
Copy 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 \ --verbose
Copy 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 .tags
Copy 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-44
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
레지스트리 구성이 준비되었습니다.