Kolla-Ansible 오픈스택 단일노드 구축 시 VIP 네트워크 오류 해결법


테스트용 서버에 오픈스택을 올리려고 manuals 문서를 보고 며칠 동안 삽질하다 보면 매번 네트워크 설정 단계에서 꽉 막히곤 합니다. 분명 블로그 글에 나온 대로 configuration 파일을 똑같이 적었는데도 Horizon 대시보드 접속 자체가 안 되거나 VIP 바인딩 오류가 뜨면 어디서부터 잘못된 건지 답답할 수밖에 없죠. 이 글에서는 2026년 최신 오픈스택 환경을 기준으로 Kolla-Ansible 설치 중 가장 흔히 발생하는 VIP 충돌과 Neutron 외부 인터페이스 꼬임 현상을 확실하게 풀어드립니다.

오픈스택 구축 방식 비교: Kolla-Ansible vs Sunbeam vs DevStack

처음 오픈스택을 접하면 도대체 어떤 툴로 설치해야 할지 고민부터 앞섭니다. 수동 컴포넌트 설치(Manual)는 학습용으로는 좋지만 실무 운영 자동화에는 부적합합니다. 검증된 도구를 목적에 맞춰 선택하는 것이 삽질 시간을 줄이는 지름길입니다.

  • Kolla-Ansible: 모든 오픈스택 서비스를 Docker/Podman 컨테이너로 격리하여 배포하며, 단일 노드부터 대규모 다중 노드 생산 환경까지 커버하는 실무 표준 도구입니다.
  • Canonical Sunbeam: MicroK8s 기반으로 5분 만에 빠른 오픈스택 환경 조성이 가능하지만, 구체적인 네트워크 세부 커스텀에 일부 제한이 있습니다.
  • DevStack: 개발자용 상행 테스트용 도구로, 서버 재부팅 시 서비스가 불안정해지기 쉬워 실제 검증 환경으로는 권장하지 않습니다.
구분Kolla-AnsibleCanonical SunbeamDevStack
주요 용도운영/검증 환경 (단일/다중 노드)소규모/빠른 POC 환경오픈스택 코드 개발/단순 테스트
구동 기반Docker / Podman 컨테이너MicroK8s + Juju OperatorSystemd 서비스 직접 실행
네트워크 제어력매우 높음 (Neutron / OVN 세부 제어)보통 (기본 템플릿 위주)낮음 (스크립트 자동 생성 위주)
추천 대상실무 테스크베드 구축 엔지니어빠른 검증이 필요한 기획자/개발자OpenStack 오픈소스 기여자

오픈스택 기반의 프라이빗 클라우드를 구축하기에 앞서 퍼블릭·프라이빗·하이브리드·PPP 클라우드 장단점 비교와 선택 기준을 참고하여 자사 인프라에 가장 적합한 모델인지 먼저 검토해 보시길 권장합니다.

OpenStack 2026.1 Gazpacho 주요 변경점과 사전 요구 사양

버전을 무턱대고 선택했다가 최신 OS와 파이썬 라이브러리 버전 충돌로 설치 직전에 좌절하는 경우가 많습니다. 2026년 기준 공식 릴리스인 OpenStack 2026.1 Gazpacho 버전을 설치할 때는 우분투 최신 LTS OS와의 호환성을 반드시 먼저 짚고 넘어가야 합니다.

  • OpenStack 2026.1 Gazpacho 버전(2026년, OpenInfra 재단 4월 공식 발표)은 Ironic 배포 자동화 강화 및 Nova live migration 시 vTPM 지원이 크게 향상되었습니다.
  • Kolla-Ansible 배포 도구 기준(2026년, Kolla 개발팀 공식 문서) 권장 기본 OS는 Ubuntu 24.04 LTS(2024년, Canonical 4월 공식 발표) 또는 Rocky Linux 9/10입니다.
  • 단일 노드 환경이라도 반드시 2개 이상의 물리적 네트워크 인터페이스(NIC)와 Minimum 8GB 이상의 RAM이 준비되어야 래빗MQ 및 마리아DB 컨테이너가 튕기지 않습니다.

단일 노드 인프라 자원 배분 및 VIP 네트워크 설계 예시

가장 흔히 하는 실수가 물리 NIC 하나에 IP를 몽땅 몰아넣고 배포 스크립트를 돌리는 것입니다. 오픈스택 제어용 관리 인터페이스와 가상 머신(VM) 외부 통신용 인터페이스는 철저히 분리 설계해야 나중에 네트워크가 꼬이지 않습니다.

항목최소 테스트 조건실무 검증용 권장 조건비고 및 설정을 위한 필수 팁
CPU / RAM4 Core / 8GB RAM8 Core / 32GB RAM 이상Nova 인스턴스 할당량 고려 필요
관리 네트워크 (NIC 1)192.168.1.10/24 (Static IP)10.10.10.10/24 (Static IP)globals.yml의 network_interface 지정
가상 VIP (Virtual IP)192.168.1.254 (Unassigned IP)10.10.10.254 (Unassigned IP)kolla_internal_vip_address에 할당
외부 프로바이더 (NIC 2)IP 미할당 (Promiscuous Mode)IP 미할당 (Promiscuous Mode)neutron_external_interface로 지정

Kolla-Ansible을 이용한 5단계 단일 노드 오픈스택 구축 절차

기본 의존성 패키지를 잡고 가상환경을 구성한 뒤, 설정 파일 두 개만 제대로 만져주면 깔끔하게 배포가 완료됩니다. 찾아보니 은근히 헷갈리는 지점이 바로 파이썬 가상환경 버전과 Ansible 호환성 부분입니다.

  1. 기존 OS 패키지 업데이트 및 기본 도구 설치: sudo apt update && sudo apt install -y python3-dev python3-venv git gcc libssl-dev 명령어로 파이썬 컴파일 환경을 조성합니다.
  2. Python 가상환경 생성 및 Kolla-Ansible 설치: python3 -m venv /openstack/venv 스크립트로 격리 공간을 만들고 source /openstack/venv/bin/activate 후 pip install 'ansible-core>=2.16' kolla-ansible을 실행합니다.
  3. 설정 템플릿 복사: sudo mkdir -p /etc/kolla && sudo chown $USER:$USER /etc/kolla 실행 후, venv 디렉토리 내 share/kolla-ansible/etc_examples/kolla/ 파일들을 /etc/kolla로 복사합니다.
  4. globals.yml 핵심 변수 수정: kolla_internal_vip_address에는 사용 중이지 않은 공유기 대역 IP를, network_interface에는 eth0, neutron_external_interface에는 IP가 없는 eth1을 기재합니다.
  5. 비밀번호 생성 및 배포 명령 실행: kolla-genpwd 명령으로 암호 생성 후 kolla-ansible -i all-in-one bootstrap-servers 실행, 이어 kolla-ansible -i all-in-one prechecks 통과 시 kolla-ansible -i all-in-one deploy를 진행합니다.

배포 중 단골로 터지는 VIP 바인딩 및 네트워크 오류 해결책

스크립트를 다 돌려도 막상 prechecks 단계나 deploy 중간에 마리아DB 또는 Keepalived 에러를 내뿜고 멈추는 상황이 터집니다. 이것 때문에 설정을 몇 번이나 갈아엎게 되는데, 십중팔구 아래 2가지 요인에 걸려 있는 경우가 대부분입니다.

  • Keepalived VIP 바인딩 실패: kolla_internal_vip_address로 지정한 IP가 네트워크 상의 다른 기기(공유기 DHCP 범위 등)에서 이미 사용 중이거나, ping 응답이 돌아오는 IP라면 Keepalived 컨테이너 생성이 거부됩니다. 네트워크 내부에서 완벽히 비어 있는 static IP를 재지정해야 합니다.
  • Neutron 외부 인터페이스 브릿지 연결 에러: neutron_external_interface에 유선 IP 주소가 설정되어 있으면 Open vSwitch(br-ex)가 물리 NIC 제어권을 빼앗아 오지 못합니다. /etc/netplan 설정에서 해당 NIC의 addresses 및 dhcp4 항목을 완전히 삭제(dhcp4: no)하고 netplan apply를 적용해야 합니다.
  • Docker/Podman daemon cgroup v2 충돌: 최신 우분투 24.04 환경에서는 cgroup v2가 기본 탑재되어 시스템 드라이버 충돌이 생길 수 있습니다. /etc/docker/daemon.json에 {"exec-opts": ["native.cgroupdriver=systemd"]} 옵션을 챙겨 넣어야 컨테이너가 예기치 않게 죽는 현상을 막습니다.

자주 막히는 지점

  • globals.yml 파일의 kolla_internal_vip_address에 이미 서브넷 상에서 사용 중인 IP를 지정하여 Keepalived 컨테이너가 실행 도중 'FATAL: keepalived failed to start'를 일으키고 대시보드 포트가 열리지 않는 문제
  • neutron_external_interface로 할당한 브릿지용 물리 NIC(예: enp2s0)에 IP 주소나 DHCP 설정이 남아있어 Open vSwitch(br-ex) 생성 후 생성된 인스턴스에서 외부 인터넷(8.8.8.8)으로 핑이 나가지 않는 현상

체크리스트

  • 서버에 독립된 물리 NIC가 최소 2개 이상 구비되어 있는가?
  • Kolla 관리용 IP 대역에서 할당되지 않은 순수 빈 IP를 VIP로 확보했는가?
  • 외부 연결용 NIC의 IP 설정이 Netplan에서 완전히 제거되었는가?
  • OS 파이썬 가상환경(venv)을 활성화한 후 kolla-ansible을 설치했는가?
  • kolla-genpwd 명령어를 실행하여 /etc/kolla/passwords.yml을 생성했는가?
  • kolla-ansible -i all-in-one prechecks 명령어가 에러 없이 PASS를 출력했는가?

오해하기 쉬운 정보

  • 오픈스택 단일 노드 구축 시 NIC가 1개만 있어도 가상 브릿지를 쓰면 문제없다는 생각은 오해입니다. 인스턴스가 생성되더라도 외부 패킷 루핑이나 IP masquerade 실패로 외부 통신이 차단되므로 물리 NIC 2개가 권장됩니다.
  • Kolla-Ansible 설치 시 Docker 대신 무조건 Kubernetes가 필수라는 것은 사실과 다릅니다. Kolla는 기본적으로 Docker 또는 Podman 컨테이너 엔진으로 직접 오픈스택 서비스들을 구동합니다.
  • kolla_internal_vip_address는 서버 본체의 IP와 같아야 한다고 착각하기 쉽지만, 전혀 다릅니다. 서버 본체 IP와 별개로 동일 서브넷 내 비어 있는 '가상의 전용 IP'를 할당해야 합니다.
  • DevStack이 구축이 제일 쉬우니 운영 테스트용으로 쓰면 된다고 생각하기 쉽지만, 부팅 시 서비스 초기화 및 데이터 유실 이슈로 단일 노드 테스트 환경이라도 Kolla-Ansible이나 Sunbeam이 적합합니다.

오픈스택 구축 과정에서 겪는 수많은 에러는 결국 네트워크 인터페이스 역할 분담과 VIP 충돌에서 시작되는 경우가 태반입니다. 가이드대로 VIP를 비워두고 외부 NIC의 IP를 말끔히 비워둔 상태에서 Kolla-Ansible을 실행해보면 생각보다 허무할 정도로 한 번에 싹 설치되는 안도감을 느끼실 수 있습니다. 이제 구축된 OpenStack 2026.1 환경 위에서 나만의 클라우드 인프라를 안정적으로 테스트해 보세요.

📌 같이 보면 좋은 글

핵심 요약

  • 오픈스택 구축 시 생산/검증 환경에는 컨테이너 기반 Kolla-Ansible 구축 방식을 우선 권장함
  • OpenStack 2026.1 Gazpacho 버전은 Ubuntu 24.04 LTS 및 파이썬 venv 환경 구축이 가장 안정적임
  • 물리 네트워크 인터페이스는 관리용(IP 지정)과 Neutron 외부용(IP 제거) 최소 2개가 필수적임
  • kolla_internal_vip_address는 동일 대역 내 Ping이 나가지 않는 완전히 비어 있는 IP를 할당해야 함
  • neutron_external_interface 설정 전 Netplan에서 IP 할당을 철저히 제거해야 외부 핑 끊김을 방지함
  • kolla-ansible deploy 전 반드시 prechecks 명령을 수행해 의존성 및 서브넷 충돌 여부를 상시 체크해야 함

#오픈스택구축 #OpenStack #KollaAnsible #클라우드인프라 #우분투서버 #트러블슈팅

이 블로그의 인기 게시물

젠슨 황·SK 5000억 달러 AI 파트너십 총정리

레버리지 상품이란? 주가 10% 오르면 수익 20%? 레버리지 ETF의 위험한 함정

SK이터닉스 주가 상승 이유 총정리, 반도체와 무슨 관계?