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
를 정의하는 추가 매개변수를 포함합니다.
-
다음 두 파일이 생성되었는지 확인합니다.
-
원격 소스의 컨테이너 이미지 정보가 포함된
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 \ --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
레지스트리 구성이 준비되었습니다.