Redhat Openstack 설치 시 Docker local registry 구성
레지스트리 소프트웨어 설치
# yum install docker-distribution -y
/etc/docker-distribution/registry/config.yml
파일을 편집하고 ASSET_SERVER IP 주소를 사용하도록 레지스트리를 설정하십시오. 예를 들어, ASSET_SERVER가 192.168.24.250
IP 주소에 사용 하는 경우 파일에 다음이 포함됩니다.
http: addr: 192.168.24.250:8787
포트를 8787로 그대로두고이 구성 파일을 저장하십시오.
간혹 포트를 5000으로 설정하라고 되어있는 문서가 있는데 5000번 포트는 실제 언더클라우드에서 다른 용도로 사용중인경우가 많으므로 8787포트를 사용하는것을 권장함
레지스트리를 시작하고 활성화하십시오.
# systemctl start docker-distribution # systemctl enable docker-distribution
필요한 경우 방화벽에서 레지스트리 포트를여십시오 (예 : 방화벽이 사용 된 경우).
# firewall-cmd --add-port=8787/tcp --permanent # firewall-cmd --reload
Director 명령 행 도구 설치
ASSET_SERVER 든 별도의 다운로드 서버이든 외부 연결이있는 호스트에 디렉터 용 명령 줄 도구를 설치합니다. 서버가 필요한 OpenStack 저장소에 등록되어 있는지 확인하십시오 (이전 섹션 참조).
명령 행 도구를 설치하십시오.
# yum install python-tripleoclient -y
Docker 설치 및 구성
또한 docker외부 연결을 통해 호스트에 설치 및 구성해야 합니다. 이는 director의 명령 줄 도구가 docker일부 기능을 필요로 하기 때문 입니다.
docker패키지를 설치하십시오 :
# yum install docker -y
docker ASSET SERVER를 안전하지 않은 레지스트리로 사용하도록 구성 하십시오.
일반적으로 사전 구성되어있으므로 아래 작업은 필요하지 않을수도 있음. 해당 파일 내용 확인필요.
# echo 'INSECURE_REGISTRY="--insecure-registry 192.168.24.250:8787"' >> /etc/sysconfig/docker
시작 및 활성화 docker:
# systemctl start docker # systemctl enable docker
이미지 가져오기
이 프로세스를 위해 Red Hat Container Catalog에서 최신 버전의 이미지를 가져 와서 자산 서버로 푸시합니다. 외부 연결이있는 서버에서 다음 명령을 실행하십시오.
최신 버전의 태그를 확인하십시오.
- OSP 12
# TAG=$(openstack overcloud container image tag discover \ --image registry.access.redhat.com/rhosp12/openstack-base:latest \ --tag-from-label version-release) ; echo $TAG
- OSP 13
별다른 작업이 필요하지 않음
최신 버전의 이미지 태그를 다시보고하여에 저장합니다 ''$TAG''
모든 컨테이너 이미지를 가져 와서 레지스트리로 푸시하십시오.
- OSP 12
# docker search registry.access.redhat.com/rhosp12 | awk '{print $2}' | grep ^registry.access.redhat.com | while read IMAGE_NAME do docker pull ${IMAGE_NAME}:${TAG} IMAGE_PATH=$(echo ${IMAGE_NAME} | cut -f2- -d/) docker tag ${IMAGE_NAME}:${TAG} 192.168.24.250:8787/${IMAGE_PATH}:${TAG} docker push 192.168.24.250:8787/${IMAGE_PATH}:${TAG} done
참고 : 192.168.24.250을 자산 서버 IP로 바꾸십시오.
- OSP 13
# ASSET_SERVER=192.168.24.250 # docker search registry.access.redhat.com/rhosp13| awk '{print $2}' | grep ^registry.access.redhat.com | while read IMAGE_NAME do TAG=$(openstack overcloud container image tag discover --image ${IMAGE_NAME} --tag-from-label {version}-{release}) echo "Pulling ${IMAGE_NAME}:${TAG} ..." docker pull ${IMAGE_NAME}:${TAG} IMAGE_PATH=$(echo ${IMAGE_NAME} | cut -f2- -d/) docker tag ${IMAGE_NAME}:${TAG} ${ASSET_SERVER}:8787/${IMAGE_PATH}:${TAG} docker tag ${ASSET_SERVER}:8787/${IMAGE_PATH}:${TAG} ${ASSET_SERVER}:8787/${IMAGE_PATH}:latest docker push ${ASSET_SERVER}:8787/${IMAGE_PATH} done
참고 : 192.168.24.250을 자산 서버 IP로 바꾸십시오.
Red Hat Ceph Storage를 사용하는 경우 ceph컨테이너 의 이미지를 당겨 레지스트리로 푸시하십시오.
- OSP 12
# docker pull registry.access.redhat.com/rhceph/rhceph-2-rhel7:latest # docker tag registry.access.redhat.com/rhceph/rhceph-2-rhel7:latest 192.168.24.250:8787/rhceph/rhceph-2-rhel7:latest # docker push 192.168.24.250:8787/rhceph/rhceph-2-rhel7:latest
참고 : 192.168.24.250을 자산 서버 IP로 바꾸십시오.
- OSP 13
# ASSET_SERVER=192.168.24.250 # docker pull registry.access.redhat.com/rhceph/rhceph-3-rhel7:latest # docker tag registry.access.redhat.com/rhceph/rhceph-3-rhel7:latest ${ASSET_SERVER}:8787/rhceph/rhceph-3-rhel7:latest # docker push ${ASSET_SERVER}:8787/rhceph/rhceph-3-rhel7:latest
참고 : 192.168.24.250을 자산 서버 IP로 바꾸십시오.
이 명령이 실행을 완료 한 후 자산 서버는 필요한 모든 컨테이너 이미지를 호스팅합니다.
컨테이너 이미지를위한 환경 파일 생성
오버 클라우드 배포 중에 각 노드는 선택한 레지스트리에서 OpenStack Platform 이미지를 가져옵니다. 이 레지스트리 정보를 openstack overcloud container image prepare
다시 사용하여 환경 파일로 작성 하십시오.
언더 클라우드에서 자산 서버의 이미지 위치가 포함 된 환경 파일을 작성하십시오. 예를 들면 다음과 같습니다.
- OSP 12
$ source ~/stackrc (undercloud) $ openstack overcloud container image prepare \ --namespace=<ASSET_SERVER_IP>:8787/rhosp12 \ --prefix=openstack- \ --tag=<TAG> \ --output-env-file=/home/stack/templates/overcloud_images.yaml
- OSP 13
$ source ~/stackrc (undercloud) $ openstack overcloud container image prepare \ --namespace=<ASSET_SERVER_IP>:8787/rhosp13 \ --prefix=openstack- \ --tag-from-label {version}-{release} \ --output-env-file=/home/stack/templates/overcloud_images.yaml