설치 환경
1. 베어메탈 설치
장점: 컨테이너보다 성능이 뛰어남
단점
- 장애 복구(DR) 및 오토스케일링이 어려움
- 운영 중 특정 노드 장애 발생 시 개별적으로 확인 필요
사용 가능 툴: Openstack-Ansible
Openstack-Ansible의 역할 및 책임
역할: 싱글/멀티 노드 환경에서 호스트 OS에 직접 오픈스택 서비스 설치 자동화
책임: 오픈스택 서비스 설치 및 환경 설정
주의 : Ansible은 설치 자동화 도구이지, 유지보수를 자동화해 주는 것은 아님!
2. 컨테이너 환경에 설치
장점: 장애 발생 시 컨테이너를 재시작하여 장애 복구 가능(베어메탈보다 유연)
단점
- 여전히 장애복구(DR) 및 오토스케일링 어려움
- 컨테이너가 죽으면 수동으로 확인 필요(모니터링 시스템 필요)
사용가능 툴: kolla-ansible
Kolla-ansible의 역할 및 책임
역할: 싱글/멀티 노드 환경에 [컨테이너 기반 오픈스택 서비스 설치] 자동화
책임: 오픈스택 서비스 설치 및 환경 설정
3. 컨테이너 + 오케스트레이션 환경에 설치
-> kubernetes 클러스터 환경에서 컨테이너 기반으로 설치
장점: 자동 장애 감지 및 복구, 오토스케일링
단점
- 컨테이너 장애만 복구하지, 어플리케이션 내부의 오류는 해결할 수 없음!
- 운영 중 특정 컨테이너가 죽어도 자동 복구 가능(=장점1)
사용가능 툴: openstack-helm
Openstack-helm의 역할 및 책임
역할: k8s 클러스터에 [오픈스택 서비스 컨테이너 운영 및 유지보수 자동화]
책임: 오픈스택 컨테이너 구동 및 컨테이너 자동 관리
helm
쿠버네티스용 패키지 매니저; (apt, dnf 등과 같은 역할)
쿠버네티스 환경에서 애플리케이션을 쉽게 배포하고 관리할 수 있도록 하는 도구helm이 필요한 이유
- Kubernetes에서 앱 배포 시 여러 YAML 파일(Deployment, Service 등) 필요
- Helm을 이용하면 [모든 설정을 하나의 패키지(Chart)] 로 관리 가능
- Openstack-helm Chart = 오픈스택 배포에 필요한 쿠버네티스 설정
- values.yaml을 통해 각 환경별 설정을 동적으로 변경 가능
각 설치 유형에 따라 정리해보았다.
베어메탈은 장애 대응 및 유지보수가 어렵고,
컨테이너는 장애 대응이 상대적으로 쉽지만, 컨테이너 관리가 수동적이다.
쿠버네티스를 활용한 경우 컨테이너 관리가 자동적이지만, 러닝커브가 높다(쿠버네티스 지식 및 활용 능력 필수!)
모두 일장일단이 있고, 어떤 형태를 사용할 지는 논의가 필요할 거 같다.
현재 최우선 목표는 "서비스가 굴러가는 것"이기 때문에, 러닝커브가 상대적으로 낮은 컨테이너 방식을 사용하는게 어떨까 싶다.
물론, 서비스를 굴리면서 지식이 차츰 쌓여간다면 쿠버네티스를 이용한 환경으로 바꾸는 것도 괜찮을 거 같다.
'개발 일지' 카테고리의 다른 글
Jenkins CI/CD 도입하기 (3) | 2025.06.05 |
---|