개요
Kolla Ansible을 사용하여 OpenStack 배포 시 필요한 이미지들을 사전에 Docker Hub에 업로드하고, 배포 시 해당 이미지들을 활용하는 방법에 대한 가이드입니다.
⚠️ 중요사항: 이 방법은 인터넷 연결이 가능한 환경에서만 사용할 수 있습니다. 폐쇄망이나 오프라인 환경에서는 별도의 프라이빗 레지스트리 구축이 필요합니다.
1. 기본 이미지 Pull
먼저 Kolla Ansible에서 사용할 OpenStack 이미지들을 pull 받습니다.
# Kolla Ansible을 통해 필요한 이미지들을 pull
kolla-ansible pull
또는 개별 이미지 pull:
docker pull quay.io/openstack.kolla/cinder-backup:2024.2-ubuntu-noble
docker pull quay.io/openstack.kolla/cinder-scheduler:2024.2-ubuntu-noble
docker pull quay.io/openstack.kolla/horizon:2024.2-ubuntu-noble
# ... 기타 필요한 이미지들
2. 이미지 태그 변경
Pull 받은 이미지들을 자신의 Docker Hub 계정에 맞게 태그를 변경합니다.
# 예시: cinder-backup 이미지 태그 변경
docker tag quay.io/openstack.kolla/cinder-backup:2024.2-ubuntu-noble hooulra/cinder-backup:fx-hci_250611
# 예시: cinder-scheduler 이미지 태그 변경
docker tag quay.io/openstack.kolla/cinder-scheduler:2024.2-ubuntu-noble hooulra/cinder-scheduler:fx-hci_250611
# 예시: horizon 이미지 태그 변경
docker tag quay.io/openstack.kolla/horizon:2024.2-ubuntu-noble hooulra/horizon:fx-hci_250611
3. 이미지 확인
태그가 제대로 변경되었는지 확인합니다.
docker images | grep hooulra
예상 출력:
hooulra/cinder-backup fx-hci_250611 0fe14e760eb5 4 days ago 1.42GB
hooulra/cinder-scheduler fx-hci_250611 43e0075df1dd 4 days ago 1.41GB
hooulra/horizon fx-hci_250611 a1b2c3d4e5f6 4 days ago 1.35GB
4. Docker Hub 레포지토리 준비
Docker Hub에서 각 이미지별로 레포지토리를 생성합니다:
- hooulra/cinder-backup
- hooulra/cinder-scheduler
- hooulra/horizon
- hooulra/tgtd
- hooulra/iscsid
- hooulra/fluentd
- hooulra/kolla-toolbox
- 기타 필요한 모든 서비스 이미지들
5. Docker Hub에 이미지 Push
# Docker Hub 로그인
docker login
# 이미지들을 Docker Hub에 push
docker push hooulra/cinder-backup:fx-hci_250611
docker push hooulra/cinder-scheduler:fx-hci_250611
docker push hooulra/horizon:fx-hci_250611
docker push hooulra/tgtd:fx-hci_250611
docker push hooulra/iscsid:fx-hci_250611
# ... 기타 모든 이미지들
6. globals.yml 설정 수정
Kolla Ansible의 globals.yml 파일을 수정하여 커스텀 이미지를 사용하도록 설정합니다.
---
# Docker Hub 설정
docker_registry: "docker.io"
docker_namespace: "hooulra"
openstack_tag: "fx-hci_250611"
# 기타 필요한 설정들
kolla_base_distro: "ubuntu"
openstack_release: "2024.2"
# 네트워크 설정
network_interface: "ens3"
neutron_external_interface: "ens4"
# 활성화할 서비스들
enable_cinder: "yes"
enable_horizon: "yes"
# ... 기타 서비스 설정
7. 배포 실행
설정이 완료되면 Kolla Ansible을 통해 배포를 실행합니다.
# 사전 검사
kolla-ansible -i multinode prechecks
# 배포 실행
kolla-ansible -i multinode deploy
주요 장점
- 빠른 배포: 이미지들이 이미 Docker Hub에 준비되어 있어 배포 시간 단축
- 버전 관리: 커스텀 태그를 통한 체계적인 버전 관리
- 안정성: 검증된 이미지 세트를 통한 안정적인 배포
- 재사용성: 여러 환경에서 동일한 이미지 세트 재사용 가능
스크립트 자동화
반복 작업을 위한 스크립트 예시:
#!/bin/bash
# 이미지 목록
IMAGES=(
"cinder-backup"
"cinder-scheduler"
"horizon"
"tgtd"
"iscsid"
"fluentd"
"kolla-toolbox"
# 추가 이미지들...
)
DOCKER_NAMESPACE="hooulra"
CUSTOM_TAG="fx-hci_250611"
ORIGINAL_TAG="2024.2-ubuntu-noble"
# 태그 변경 및 push
for image in "${IMAGES[@]}"; do
echo "Processing $image..."
docker tag quay.io/openstack.kolla/$image:$ORIGINAL_TAG $DOCKER_NAMESPACE/$image:$CUSTOM_TAG
docker push $DOCKER_NAMESPACE/$image:$CUSTOM_TAG
echo "Completed $image"
done
참고사항
- 인터넷 연결 필수: 이 방법은 Docker Hub에 접근할 수 있는 인터넷 환경에서만 사용 가능
- 폐쇄망 환경: 오프라인 또는 폐쇄망 환경에서는 Harbor, Registry 등의 프라이빗 레지스트리 구축 필요
- Docker Hub의 pull rate limit을 고려하여 필요시 프라이빗 레지스트리 사용 검토
- 이미지 크기가 크므로 네트워크 대역폭과 저장공간 고려
- 보안을 위해 프라이빗 레포지토리 사용 권장
- 정기적인 이미지 업데이트 및 보안 패치 적용 필요
'CLOUD' 카테고리의 다른 글
OpenStack Kolla Redis Sentinel 인증 오류 디버깅 가이드 (2) | 2025.08.13 |
---|---|
VMware -> OpenStack 실무 마이그레이션 가이드 - Migratekit 활용 (2) | 2025.08.12 |
Ceph 클러스터 성능 모니터링 및 체크 가이드 (0) | 2025.06.16 |
OpenStack Cinder RBD 강제 종료 후 Disk I/O 문제 해결 가이드 (1) | 2025.06.16 |
OpenStack 인스턴스 스냅샷 vs 볼륨 스냅샷 완벽 가이드 (0) | 2025.06.16 |