KOLLA ANSIBLE - 간단하게 도커 프라이빗 레지스트리 적용 시켜보기
사전 준비
이 작업을 수행하려면 먼저 Kolla-Ansible을 설치하고 OpenStack 배포에 필요한 모든 이미지를 사전에 kolla-ansible 명령어 pull을 통해 다운로드해야 합니다. 이후, 다운로드된 이미지를 프라이빗 레지스트리에 푸시할 수 있습니다.
1. 도커 레지스트리 컨테이너 실행
먼저, 도커가 설치된 상태에서 다음 명령어를 실행하여 레지스트리 컨테이너를 실행합니다.
docker run -d -p 192.168.0.226:5000:5000 --restart=always --name registry registry:2
이 명령어는 192.168.0.226:5000 포트로 외부에서 접근할 수 있도록 도커 레지스트리를 실행합니다.
2. Docker Daemon 설정 변경
레지스트리를 신뢰할 수 있도록 /etc/docker/daemon.json 파일을 수정합니다.
{
"insecure-registries": ["192.168.0.226:5000"],
"ip-forward": true,
"iptables": true,
"log-opts": {
"max-file": "5",
"max-size": "50m"
}
}
설정 적용을 위해 도커를 재시작합니다.
systemctl restart docker
3. 레지스트리 정상 실행 확인
다음 명령어를 실행하여 레지스트리 서비스가 정상적으로 실행 중인지 확인합니다.
netstat -tulnp | grep 5000
출력 예시:
LISTEN 0 4096 192.168.0.226:5000 0.0.0.0:* users:(("docker-proxy",pid=28601,fd=4))
이후 아래 명령어를 실행하여 레지스트리가 정상적으로 동작하는지 확인합니다.
curl -v http://192.168.0.226:5000/v2/_catalog
출력 예시:
{"repositories":[]}
4. OpenStack Kolla 이미지 태그 변경
현재 있는 모든 OpenStack Kolla 이미지를 프라이빗 레지스트리로 푸시할 수 있도록 태그를 변경합니다.
for img in $(docker images --format "{{.Repository}}:{{.Tag}}" | grep "quay.io/openstack.kolla"); do
new_tag=$(echo $img | sed "s|quay.io/openstack.kolla|192.168.0.226:5000/openstack.kolla|")
docker tag $img $new_tag
done
변경된 이미지가 정상적으로 적용되었는지 확인합니다.
docker images | grep "192.168.0.226:5000/openstack.kolla"
5. OpenStack Kolla 이미지 푸시
태그가 변경된 모든 이미지를 프라이빗 레지스트리에 푸시합니다.
for img in $(docker images --format "{{.Repository}}:{{.Tag}}" | grep "192.168.0.226:5000/openstack.kolla"); do
docker push $img
done
푸시 완료 후, 레지스트리에 정상적으로 반영되었는지 확인합니다.
curl -v http://192.168.0.226:5000/v2/_catalog
출력 예시:
{"repositories":["openstack.kolla/image1", "openstack.kolla/image2"]}
6. global.yml에서 레지스트리 설정
OpenStack Kolla를 배포할 때 global.yml 파일에서 프라이빗 레지스트리를 사용하도록 설정해야 합니다.
/etc/kolla/globals.yml 파일을 열고 아래 설정을 추가하거나 수정합니다:
docker_registry: "192.168.0.226:5000"
docker_namespace: "openstack.kolla"
docker_registry_insecure: "yes"
이 설정을 적용하면 Kolla가 도커 이미지를 192.168.0.226:5000에서 가져오도록 구성됩니다.
7. 배포 시도
프라이빗 레지스트리에 푸시된 이미지를 활용하여 OpenStack Kolla를 배포합니다.
프라이빗 레지스트리 사용의 이점
네트워크 대역폭 절약
- 외부 레지스트리(quay.io, docker.io 등)에서 반복적으로 이미지를 다운로드하는 대신, 내부 네트워크에서 빠르게 가져올 수 있음.
- 배포 속도 향상
- 내부 네트워크에서 이미지를 가져오기 때문에 배포 시간이 단축되며, 특히 다중 노드 환경에서 큰 효과를 봄.
- 외부 네트워크 의존도 감소
- 인터넷 연결이 제한적인 환경에서도 원활하게 OpenStack 배포 가능.
- 외부 레지스트리가 다운되거나 속도가 저하되더라도 영향을 받지 않음.
- 보안성 강화
- 프라이빗 환경에서 관리되므로 외부 해킹 및 보안 위협에서 자유로움.
- 신뢰할 수 있는 이미지만 저장하고 검증된 환경에서 배포 가능.
- 이미지 버전 관리 용이
- 원하는 특정 버전의 이미지를 유지 및 관리할 수 있어 불필요한 업데이트나 충돌을 방지 가능.
- 커스텀 이미지 적용 가능
- 필요에 따라 OpenStack Kolla 이미지를 직접 수정하여 내부 레지스트리에 푸시한 후 배포 가능.