오픈스택(OpenStack) 설치 및 LBaas 사용(Feat. F5연동) - 3

2025. 8. 13. 10:22·클라우드
728x90
반응형

목차

8.LBaaS(Octavia)설치 -1 - Octavia 서비스 확인

9. LBaaS(Octavia)설치 -2 - 이미지 준비 및 External IP설정

10. LBaaS(Octavia)설치-3- LB생성

 

 

 

8.LBaaS(Octavia)설치

[환경변수 로드 확인]
env | grep ^OS_

[Octavia 서비스 존재 여부]
## 아래 명령어 입력 시 아무값도 출력이 안 된다면, globals.yml에서 enable_octavia:yes로 변경이 필요
openstack service list | grep -i octavia
docker ps --format '{{.Names}}' | grep -i octavia

## 재설정
kolla-ansible -i /etc/kolla/inventory.ini reconfigure --tags octavia

[Octavia 설치 실패 시 아래 설정 진행]
kolla-ansible --help | grep -i octavia

# (venv 활성화 상태에서)
sudo mkdir -p /etc/kolla/config/octavia
sudo chown root:root /etc/kolla/config/octavia
sudo chmod 700 /etc/kolla/config/octavia
kolla-ansible -i /etc/kolla/inventory.ini octavia-certificates
ls -l /etc/kolla/config/octavia/

[Octavia 재실행]
## 글로벌 파일 재확인
grep -n 'enable_octavia' /etc/kolla/globals.yml
kolla-ansible -i /etc/kolla/inventory.ini reconfigure --tags octavia

[컨테이너 확인]
docker ps --format '{{.Names}}' | grep -i octavia

[서비스 등록 확인]
source /etc/kolla/admin-openrc.sh
openstack service list | grep -i octavia

[동작확인]
pip install python-octaviaclient  # 없으면 설치
openstack loadbalancer list

 

9. LBaaS(Octavia)실행

[Amphora 이미지 준비]
Octavia는 로드밸런서를 Amphora(작은 VM)로 만듦. Glance에 Amphora 이미지가 있어야 함.
openstack image list | grep -i amphora

[이미지 다운]
##이미지 받기
cd /root
curl -L -o amphora.qcow2 \
  https://tarballs.opendev.org/openstack/octavia/test-images/test-only-amphora-x64-haproxy-centos-9-stream.qcow2

##Glance에 업로드
source /etc/kolla/admin-openrc.sh

openstack image create amphora-x64-haproxy \
  --disk-format qcow2 --container-format bare \
  --file /root/amphora.qcow2 \
  --private --tag amphora \
  --property hw_architecture='x86_64' \
  --property hw_rng_model=virtio

## 업로드 확인
openstack image list | grep -i amphora

[Amphora Flavor 준비, 대부분 있어서 Skip해도됨]

##Octavia는 LB 생성 시 Amphora라는 작은 VM을 생성. 
##이때 사용할 vCPU/RAM/디스크 스펙이 flavor로 지정돼 있어야 함.
##Flavor가 없으면 LB 생성 시 “No valid flavor” 오류 발생.
##Kolla-Ansible이 자동으로 생성해두는 경우도 있지만, 없는 경우 직접 만들어야 함.

openstack flavor list | grep -i amphora ##해당 목록확인
openstack flavor create amphora --vcpus 1 --ram 1024 --disk 3 ## 생성
openstack flavor set amphora --property hw:cpu_policy=shared ##생성

[Octavia 관리 네트워크/보안그룹 확인]
# 관리 네트워크/서브넷 존재 여부
openstack network list | egrep -i 'octavia|lb-mgmt|amphora|mgmt' || true
openstack subnet list  | egrep -i 'octavia|lb-mgmt|amphora|mgmt' || true

# 보안그룹(헬스/관리) 존재 여부
openstack security group list | egrep -i 'octavia|health|amphora|lb' || true

[외부 네트워크 확인]

openstack network list --external
openstack subnet list --network <외부망이름>

##내 설정에서는 해당 IP가 매핑이 안 돼 있어 physnet 매핑설정

# neutron-server(ML2) 오버라이드: flat 네트워크 이름 지정
cat >/etc/kolla/config/neutron/ml2_conf.ini <<'EOF'
[ml2_type_flat]
flat_networks = physnet1
EOF

# OVS 에이전트 오버라이드: physnet1 ↔ br-ex 매핑
cat >/etc/kolla/config/neutron/openvswitch_agent.ini <<'EOF'
[ovs]
bridge_mappings = physnet1:br-ex
EOF

## 적용
kolla-ansible -i /etc/kolla/inventory.ini reconfigure --tags neutron

## 컨테이너 안에서 반영된 것 확인
docker exec -it neutron_openvswitch_agent bash -lc "grep -R 'bridge_mappings' -n /etc/neutron || true"
docker exec -it neutron_server bash -lc "grep -R 'flat_networks' -n /etc/neutron || true"

## external-net 설정
openstack network create external-net \
  --external \
  --provider-network-type flat \
  --provider-physical-network physnet1

openstack subnet create external-subnet \
  --network external-net \
  --subnet-range 192.168.47.0/24 \
  --gateway 192.168.47.1 \
  --no-dhcp
  
  
  
  # 외부망 공유로 전환
openstack network set --share external-net

# 다시 생성/모니터링
EXT_NET_ID="$(openstack network show -f value -c id external-net)"
LB_ID="$(openstack loadbalancer create --name lb_retry --vip-network-id "$EXT_NET_ID" -f value -c id)"
echo "LB_ID=$LB_ID"

watch -n 5 'openstack loadbalancer show '"$LB_ID"' -c provisioning_status -c operating_status -c vip_address; openstack server list --all-projects | grep -i amphora || true'

 

 

10. LBaaS(Octavia)설치-3- LB생성


[LB생성]
##LB 생성 → 리스너 → 풀 → 멤버 → 헬스모니터 순으로 진행
# LB 생성 (VIP를 external-net에)
openstack loadbalancer create --name lb1 \
  --vip-network-id $(openstack network show -f value -c id external-net)

# 상태 확인 (ACTIVE 될 때까지)
openstack loadbalancer show lb1 -c vip_address -c provisioning_status -c operating_status

## 안 될 시 아래 작업 진행
# 1. 변수에 방금 만든 amphora-public 플래이버 ID 저장
FLAVOR_ID=ad47b3d6-bb4d-4c66-91e5-9a96996de18c

# 2. Octavia 설정 디렉터리 생성
mkdir -p /etc/kolla/config/octavia

# 3. 설정 파일 생성 (오버라이드용)
cat > /etc/kolla/config/octavia/octavia.conf <<EOF
[controller_worker]
# amphora 이미지를 'amphora' 태그로 자동 선택
amp_image_tag = amphora
# 방금 만든 공개 플래이버 ID 지정
amp_flavor_id = ${FLAVOR_ID}
EOF


## 설정 반영
kolla-ansible -i /etc/kolla/inventory.ini reconfigure --tags octavia

##확인
openstack image set amphora-x64-haproxy --public --tag amphora
openstack image show amphora-x64-haproxy -c visibility -c tags

## LB 재생성
openstack loadbalancer delete lb1 --cascade || true

openstack loadbalancer create --name lb1 \
  --vip-network-id $(openstack network show -f value -c id external-net)

## 상태/주소
openstack loadbalancer show lb1 -c vip_address -c provisioning_status -c operating_status

## Amphora VM 생성확인
openstack server list --all-projects | grep -i amphora || true
##Amphora 제대로 실행 안 될 시 아래 작업 진행
# 1) Octavia가 쓸 프로젝트 찾기 (보통 'service' 프로젝트)
openstack project list | egrep -i 'service|octavia'

# 2) 현재 amphora 플래이버 접근권한 확인
openstack flavor access list amphora

# 3) service(또는 octavia) 프로젝트에 접근권한 부여
#   <PROJECT_ID> 를 1)에서 나온 ID로 바꿔 넣으세요.
openstack flavor set amphora --project <PROJECT_ID>

# 4) 확인
openstack flavor access list amphora
# 백업
cp -a /etc/kolla/globals.yml /etc/kolla/globals.yml.bak.$(date +%s)

# 두 옵션 “추가 또는 덮어쓰기”
grep -q '^enable_redis:' /etc/kolla/globals.yml \
  && sed -i 's/^enable_redis:.*/enable_redis: "yes"/' /etc/kolla/globals.yml \
  || echo 'enable_redis: "yes"' >> /etc/kolla/globals.yml

grep -q '^enable_octavia_jobboard:' /etc/kolla/globals.yml \
  && sed -i 's/^enable_octavia_jobboard:.*/enable_octavia_jobboard: "yes"/' /etc/kolla/globals.yml \
  || echo 'enable_octavia_jobboard: "yes"' >> /etc/kolla/globals.yml

##valid_interface=internal 추가
cat >> /etc/kolla/config/octavia/octavia.conf <<'EOF'

# === added for openstacksdk service endpoints ===
[nova]
valid_interfaces = internal

[glance]
valid_interfaces = internal

[cinder]
valid_interfaces = internal
EOF



## 재적용
kolla-ansible -i /etc/kolla/inventory.ini reconfigure --tags octavia

 

728x90
반응형

'클라우드' 카테고리의 다른 글

오픈스택(OpenStack) 설치 및 LBaas 사용(Feat. F5연동) - 2  (1) 2025.08.07
오픈스택(OpenStack) 설치 및 LBaas 사용(Feat. F5연동) - 1  (0) 2025.08.06
NCP Email 알람 못 받을 경우 해결 방법(Email 450 Error)  (0) 2025.05.12
NCP-AWS IPsec VPN 연결  (0) 2025.05.12
NCP(네이버클라우드) NetworkProxyLB를 활용한 FTP서버 설정2 - 파일질라 서버 설치(L3 DSR FTP)  (1) 2024.10.28
'클라우드' 카테고리의 다른 글
  • 오픈스택(OpenStack) 설치 및 LBaas 사용(Feat. F5연동) - 2
  • 오픈스택(OpenStack) 설치 및 LBaas 사용(Feat. F5연동) - 1
  • NCP Email 알람 못 받을 경우 해결 방법(Email 450 Error)
  • NCP-AWS IPsec VPN 연결
Royal!
Royal!
Bachelor of Arts. Bachelor of Science in Engineering. Master of Science in Engineering (In Progress). Job Title: Infrastructure & Security & Cloud Engineer. Etc: Mentor at Fourth Industrial Revolution Center.
  • Royal!
    Security
    Royal!
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 운영체제
      • 네트워크
      • 클라우드
      • 서버
        • Container
      • 보안
      • 프로그래밍
        • Python_혼자 끄적끄적
        • Python_AI(영상처리)
        • 빅데이터
        • C_정보올림피아드 Language_Coder
        • C_QnA
      • 자격증
        • 정보보안기사
        • 정보처리기사
        • ADsP
        • CPPG
        • 보안법률
        • NCA~NCP
        • AWS Certified Solutions Arc..
      • 기타
        • 면접일지
        • 기타 활동
        • 인턴활동
        • 논문 요약
        • Hackerschool FTZ
        • 리버싱 걸음마
      • 기타 교육
        • KISA 정보보호제품실습군
        • 빅데이터_분석실무
        • 시큐어코딩진단전문교육(호남정보보호센터)
        • SW테스트 전문가 과정(ISTQB CTFL자격)
        • 정보보호 컨설팅 전문가 양성과정
        • K-Shield Jr_악성코드분석
        • K-Shield Jr_침해사고분석
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    블록체인체험
    2025블록체인누리단
    openstack설치
    네이버클라우드 ftp 설정
    스위치 프레임 동작 방식
    openstack lbaas
    swtich frame
    우수교육생
    nce dump
    지그립토
    ICT이노베이션스퀘어
    F5 WAF
    F5 AWAF
    l2 스위치 프레임 전달 방식
    SSRF 방어방법
    WAF SSRF
    SSRF 완화방법
    switch forwarding mode
    LBaaS설치
    SSRF 막는 방법
    블록체인누리단
    LBaaS
    openstack LBaaS설치
    SSRF란
    fragment-free
    F5 LBaaS
    ai
    F5 SSRF
    openstack F5연동
    nce덤프
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Royal!
오픈스택(OpenStack) 설치 및 LBaas 사용(Feat. F5연동) - 3
상단으로

티스토리툴바