Technical/Cloud, Virtualization, Containers

[Openstack #2] Mac OS에서 오픈스택(Mitaka v6) 환경 구성 - Multi-node Openstack POC(개념증명)

Barracuda 2016. 12. 14. 05:00
반응형


Openstack Mitaka 최종본(v6) 설치 및 설정 종합본



본 편의 도입 및 준비 부분은, 위의 지난 2016년 9월에 #1 편에서 다뤘던 Mitaka v5 버전 내용을 그 근간으로 한다. Mitaka v5 는 지난 2016년 6월에 출시된 이후 거의 몇 일 ~ 몇 주 단위로 활발하게 수정 변경되어 11월 9일에 최종 버전인 v6 가 릴리즈되어 있다. 참고로 CentOS 계열(Redhat, CentOS, Fedora)을 위한 디플로이 도구인 Packstack 의 Mitaka 를 위한 버전은 다음 그림에서 보다시피 v5, v6 만 존재하고 있다.



지난 9월의 계획에서는 2016년 10월 릴리즈 예정이었던 Newton 버전을 설치하고 검증하는 과정을 다루려고 했으나, 릴리즈 직후에 한 번 시험삼아 설치해 보니 지나치게 불안정한 면이 커서, 현 시점의 안정적인 Mitaka 최종 버전을 따로 정리해 두는 편이 나을 듯 하여 급하게 본 포스팅을 구성해 보려 한다.


  • 설치 준비 과정 이후의 상세 내용


전 편의 1~5 섹션까지 내용은 그대로 사용하는 것으로 하고, 이후의 섹션 6부터 전 편의 보충 형식으로 써내려 간다. 결론적으로는, 오픈스택 Mitaka 버전을 설치, 설정하기 위해서는 지난 #1편(1~5섹션)과 본 #2편(6섹션 이후)를 연이어서 참고하면 되지 않을까 하는 생각이다.



6. 오픈스택 설치를 위한 각 노드들의 패키지 설정


  • 각 노드의 리포지토리를 변경하고 필수 패키지 설정


이미 위에서 언급했다시피, 다수의 의존성 패키지를 따로 설치하지 않고 yum update -y 를 통해 최신 패키지 업데이트를 진행한 다음 Openstack v6 를 따로 다운로드 설치하는 과정을 아래에 써내려 간다. 역시 Mitaka의 최종 버전이니만큼 비교적 안정적이고 오류 없이 잘 진행됨을 확인하였다(9월버전 v5에서 오류가 발생하였던 lbaas 포함 설치도 v6에서는 오류 없이 잘 진행됨).


# yum update -y

# yum install -y net-tools

# yum install -y wget


  • 각 노드의 /etc/hosts 파일에 다음의 3개 라인을 추가

10.10.10.6 openstack-ctrl

10.10.10.7 openstack-net

10.10.10.8 openstack-cmp1


  • 마찬가지로 각 3개 노드에서 보안 등 각종 관리패키지를 오픈스택 설치가 가능해 지도록 구성

# systemctl disable firewalld

# systemctl stop firewalld

# systemctl disable NetworkManager

# systemctl stop NetworkManager

# yum remove -y NetworkManager

# systemctl enable network

# systemctl start network



7. Packstack 으로 Openstack 자동 설치하기

Packstack은 Controller 노드에서 answer 파일을 읽어 들여서 자신을 포함하여 하위 노드(Network 노드, Compute 노드들)에서 각종 소프트웨어들을 설치/설정하는 스크립트를 단계적으로 실행해 주는 역할을 한다(Redhat 제공 RDO 프로젝트 참고: www.rdoproject.org). 이를 위해 각 하위 노드에 암호 없이 접속이 가능해야 한다. 


  • Controller 노드에서 각 노드로 Passwordless ssh 설정

[root@openstack-ctrl ~]# ssh-keygen 

[root@openstack-ctrl ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.10.10.7

[root@openstack-ctrl ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.10.10.8


#--> 암호 없이 정상적으로 접속되는지 확인

[root@openstack-ctrl ~]# ssh openstack-net

[root@openstack-ctrl ~]# ssh openstack-cmp1


  • Packstack repo 설정 및 설치 시작
이전에 진행했던 방식으로 다음과 같이 rdo-release.rpm 을 다운로드하고 설치하면, 현재 시점의 가장 최근 버전인 newton 버전이 설치되어 버리므로,

[root@openstack-ctrl ~]# yum install -y https://www.rdoproject.org/repos/rdo-release.rpm

[root@openstack-ctrl ~]# yum install -y openstack-packstack

...


특정 버전의 Openstack을 명시적으로 다운로드 & 설치하기 위해서는 https://repos.fedorapeople.org/repos/openstack/ 에서 해당 버전을 찾아서 설치하는 과정을 밟아 가면 된다. 여기서는 생성된 answer.txt 파일 항목 중 특별히 편집 수정해야 하는 부분을 표시하여 간략한 설명을 달아 두도록 한다.

[root@openstack-ctrl ~]# yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-mitaka/rdo-release-mitaka-6.noarch.rpm

[root@openstack-ctrl ~]# yum update -y

[root@openstack-ctrl ~]# yum install -y openstack-packstack

[root@openstack-ctrl ~]# su - stack

[stack@openstack-ctrl ~]# sudo packstack --gen-answer-file=answer.txt

[stack@openstack-ctrl ~]# sudo vi answer.txt

[general]

...

# 개별 항목에 자동 적용 되는 공통 암호

CONFIG_DEFAULT_PASSWORD=openstack


# 여기서는 사용하지 않음

CONFIG_MANILA_INSTALL=n


# 여기서는 사용하지 않음

CONFIG_SWIFT_INSTALL=n


# 미터링 패키지 설치

CONFIG_CEILOMETER_INSTALL=y


# 여기서는 사용하지 않음

CONFIG_AODH_INSTALL=n


# 여기서는 사용하지 않음

CONFIG_GNOCCHI_INSTALL=n


# 여기서는 사용하지 않음

CONFIG_SAHARA_INSTALL=n


# 오케스트레이션을 위한 패키지 설치

CONFIG_HEAT_INSTALL=y


# 여기서는 사용하지 않음

CONFIG_IRONIC_INSTALL=n


# ntp 시간동기화는 수동 설치 및 설정

CONFIG_NTP_SERVERS=


# 여기서는 사용하지 않음

CONFIG_NAGIOS_INSTALL=n


# API 서비스 패키지 등이 설치되는 Controller 노드

CONFIG_CONTROLLER_HOST=10.10.10.6


# Compute 서비스 패키지들이 설치되는 노드

CONFIG_COMPUTE_HOSTS=10.10.10.8


# Compute networking (nova network) 또는 OpenStack Networking (neutron) 이 설치 되는 Network 노드

CONFIG_NETWORK_HOSTS=10.10.10.7


# AMQP 서비스 설치 노드(여기서는 Controller 노드)

CONFIG_AMQP_HOST=10.10.10.6


# 기본 DB인 MariaDB 설치 노드(여기서는 Controller 노드)

CONFIG_MARIADB_HOST=10.10.10.6


# MariaDB 관리자 계정 암호

CONFIG_MARIADB_PW=openstack


# Keystone DB 암호

CONFIG_KEYSTONE_DB_PW=openstack


# Identity 서비스 admin 계정 암호

CONFIG_KEYSTONE_ADMIN_PW=openstack


# Identity service demo 계정 암호

CONFIG_KEYSTONE_DEMO_PW=openstack


# Glance DB 암호

CONFIG_GLANCE_DB_PW=openstack


# Glance Identity service 암호

CONFIG_GLANCE_KS_PW=openstack


# Nova DB 암호

CONFIG_NOVA_DB_PW=openstack


# Nova Identity service 암호

CONFIG_NOVA_KS_PW=openstack


# Neutron Identity service 암호

CONFIG_NEUTRON_KS_PW=openstack


# Neutron DB 암호

CONFIG_NEUTRON_DB_PW=openstack


# Neutron L3 의 External OVS bridge 지정(비워 두면 default로 linuxbridge)

CONFIG_NEUTRON_L3_EXT_BRIDGE=br-ex


# OpenStack Networking metadata agent 암호.

CONFIG_NEUTRON_METADATA_PW=openstack


# OpenStack Networking's Load-Balancing-as-a-Service (LBaaS) 설치 여부

CONFIG_LBAAS_INSTALL=y


# OpenStack Networking's L3 Metering agent 설치 여부

CONFIG_NEUTRON_METERING_AGENT_INSTALL=y


# neutron.ml2.type_drivers 로 사용할 드라이버 지정. comma 로 구분 ['local','flat', 'vlan', 'gre', 'vxlan']

CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan


# Tenant network로 사용할 network type을 순서대로 지정. comma 로 구분 ['local', 'vlan', 'gre', 'vxlan']

CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan


# neutron.ml2.mechanism_drivers 로 로딩할 메커니즘 드라이버 지정. comma 로 구분

# ['logger', 'test', 'linuxbridge', 'openvswitch', 'hyperv', 'ncs', 'arista', 'cisco_nexus', 'mlnx', 'l2population', 'sriovnicswitch']

CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch


# OpenStack Networking으로 사용할 L2 agent 지정 ['linuxbridge', 'openvswitch']

CONFIG_NEUTRON_L2_AGENT=openvswitch


# HEAT DB 암호

CONFIG_HEAT_DB_PW=openstack


# HEAT Identity service 암호

CONFIG_HEAT_KS_PW=openstack


# HEAT Identity domain 관리자 암호

CONFIG_HEAT_DOMAIN_PASSWORD=openstack


# Provisioning 테스트를 위한 demo 설치 여부

CONFIG_PROVISION_DEMO=y


# Ceilometer Identity service 암호

CONFIG_CEILOMETER_KS_PW=openstack


# MongoDB 설치 서버(여기서는 Controller 노드)

CONFIG_MONGODB_HOST=10.10.10.6


# Redis master server

CONFIG_REDIS_MASTER_HOST=10.10.10.6


[stack@openstack-ctrl ~]# sudo packstack --answer-file=answer.txt

Welcome to the Packstack setup utility


The installation log file is available at: /var/tmp/packstack/20161209-052810-KZtyhp/openstack-setup.log


Installing:

Clean Up                                             [ DONE ]

Discovering ip protocol version                      [ DONE ]

root@10.10.10.6's password: 

Setting up ssh keys                                  [ DONE ]

Preparing servers                                    [ DONE ]

Pre installing Puppet and discovering hosts' details [ DONE ]

Adding pre install manifest entries                  [ DONE ]

Setting up CACERT                                    [ DONE ]

Adding AMQP manifest entries                         [ DONE ]

Adding MariaDB manifest entries                      [ DONE ]

Adding Apache manifest entries                       [ DONE ]

Fixing Keystone LDAP config parameters to be undef if empty[ DONE ]

Adding Keystone manifest entries                     [ DONE ]

Adding Glance Keystone manifest entries              [ DONE ]

Adding Glance manifest entries                       [ DONE ]

Adding Nova API manifest entries                     [ DONE ]

Adding Nova Keystone manifest entries                [ DONE ]

Adding Nova Cert manifest entries                    [ DONE ]

Adding Nova Conductor manifest entries               [ DONE ]

Creating ssh keys for Nova migration                 [ DONE ]

Gathering ssh host keys for Nova migration           [ DONE ]

Adding Nova Compute manifest entries                 [ DONE ]

Adding Nova Scheduler manifest entries               [ DONE ]

Adding Nova VNC Proxy manifest entries               [ DONE ]

Adding OpenStack Network-related Nova manifest entries[ DONE ]

Adding Nova Common manifest entries                  [ DONE ]

Adding Neutron VPNaaS Agent manifest entries         [ DONE ]

Adding Neutron FWaaS Agent manifest entries          [ DONE ]

Adding Neutron LBaaS Agent manifest entries          [ DONE ]

Adding Neutron API manifest entries                  [ DONE ]

Adding Neutron Keystone manifest entries             [ DONE ]

Adding Neutron L3 manifest entries                   [ DONE ]

Adding Neutron L2 Agent manifest entries             [ DONE ]

Adding Neutron DHCP Agent manifest entries           [ DONE ]

Adding Neutron Metering Agent manifest entries       [ DONE ]

Adding Neutron Metadata Agent manifest entries       [ DONE ]

Adding Neutron SR-IOV Switch Agent manifest entries  [ DONE ]

Checking if NetworkManager is enabled and running    [ DONE ]

Adding OpenStack Client manifest entries             [ DONE ]

Adding Horizon manifest entries                      [ DONE ]

Adding Heat manifest entries                         [ DONE ]

Adding Provisioning manifest entries                 [ DONE ]

Adding Provisioning Glance manifest entries          [ DONE ]

Adding Provisioning Demo bridge manifest entries     [ DONE ]

Adding MongoDB manifest entries                      [ DONE ]

Adding Redis manifest entries                        [ DONE ]

Adding Ceilometer manifest entries                   [ DONE ]

Adding Ceilometer Keystone manifest entries          [ DONE ]

Copying Puppet modules and manifests                 [ DONE ]

Applying 10.10.10.8_prescript.pp

Applying 10.10.10.7_prescript.pp

Applying 10.10.10.6_prescript.pp

10.10.10.7_prescript.pp:                             [ DONE ]      

10.10.10.8_prescript.pp:                             [ DONE ]      

10.10.10.6_prescript.pp:                             [ DONE ]      

Applying 10.10.10.6_amqp.pp

Applying 10.10.10.6_mariadb.pp

10.10.10.6_amqp.pp:                                  [ DONE ]    

10.10.10.6_mariadb.pp:                               [ DONE ]    

Applying 10.10.10.6_apache.pp

10.10.10.6_apache.pp:                                [ DONE ]   

Applying 10.10.10.6_keystone.pp

Applying 10.10.10.6_glance.pp

10.10.10.6_keystone.pp:                              [ DONE ]     

10.10.10.6_glance.pp:                                [ DONE ]     

Applying 10.10.10.6_api_nova.pp

10.10.10.6_api_nova.pp:                              [ DONE ]     

Applying 10.10.10.6_nova.pp

Applying 10.10.10.8_nova.pp

Applying 10.10.10.7_neutron.pp

10.10.10.6_nova.pp:                                  [ DONE ]    

10.10.10.7_neutron.pp:                               [ DONE ]    

10.10.10.8_nova.pp:                                  [ DONE ]    

Applying 10.10.10.8_neutron.pp

Applying 10.10.10.6_neutron.pp

10.10.10.8_neutron.pp:                               [ DONE ]    

10.10.10.6_neutron.pp:                               [ DONE ]    

Applying 10.10.10.6_osclient.pp

Applying 10.10.10.6_horizon.pp

10.10.10.6_osclient.pp:                              [ DONE ]     

10.10.10.6_horizon.pp:                               [ DONE ]     

Applying 10.10.10.6_heat.pp

10.10.10.6_heat.pp:                                  [ DONE ] 

Applying 10.10.10.6_provision.pp

Applying 10.10.10.6_provision_glance

10.10.10.6_provision.pp:                             [ DONE ]          

10.10.10.6_provision_glance:                         [ DONE ]          

Applying 10.10.10.7_provision_bridge.pp

10.10.10.7_provision_bridge.pp:                      [ DONE ]             

Applying 10.10.10.6_mongodb.pp

Applying 10.10.10.6_redis.pp

10.10.10.6_mongodb.pp:                               [ DONE ]    

10.10.10.6_redis.pp:                                 [ DONE ]    

Applying 10.10.10.6_ceilometer.pp

10.10.10.6_ceilometer.pp:                            [ DONE ]       

Applying Puppet manifests                            [ DONE ]

Finalizing                                           [ DONE ]


 **** Installation completed successfully ******


Additional information:

 * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.

 * File /root/keystonerc_admin has been created on OpenStack client host 10.10.10.6. To use the command line tools you need to source the file.

 * To access the OpenStack Dashboard browse to http://10.10.10.6/dashboard .

Please, find your login credentials stored in the keystonerc_admin in your home directory.

 * Because of the kernel update the host 10.10.10.8 requires reboot.

 * Because of the kernel update the host 10.10.10.7 requires reboot.

 * Because of the kernel update the host 10.10.10.6 requires reboot.

 * The installation log file is available at: /var/tmp/packstack/20161209-052810-KZtyhp/openstack-setup.log

 * The generated manifests are available at: /var/tmp/packstack/20161209-052810-KZtyhp/manifests



8. Network 노드 - Neutron 네트워크(OVS bridge) 인터페이스 설정 확인


#1 편에서 수동으로 설정해 주어야 했던 Network 노드의 외부 bridge 인터페이스(br-ex)와 enp0s9 의 브리지 포트 연결이, Mitaka v6에서는 자동으로 이루어짐을 볼 수 있다. 다음의 결과를 확인해 보자 


  • Network 노드 브리지 인터페이스 설정 확인

[root@openstack-net ~]# ifconfig

br-ex: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.0.7  netmask 255.255.255.0  broadcast 192.168.0.255

        inet6 fe80::8464:32ff:fe27:304f  prefixlen 64  scopeid 0x20<link>

        ether 08:00:27:bd:a3:bd  txqueuelen 0  (Ethernet)

        RX packets 138  bytes 21542 (21.0 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 59  bytes 6843 (6.6 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


enp0s9: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet6 fe80::a00:27ff:febd:a3bd  prefixlen 64  scopeid 0x20<link>

        ether 08:00:27:bd:a3:bd  txqueuelen 1000  (Ethernet)

        RX packets 412  bytes 84303 (82.3 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 71  bytes 9555 (9.3 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


...



이제 ifcfg-br-ex, ifcfg-enp0s9 인터페이스도 확인해 보자

[root@openstack-net ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex

DEVICE=br-ex

DEVICETYPE=ovs

TYPE=OVSBridge

BOOTPROTO=static

IPADDR=192.168.0.7

NETMASK=255.255.255.0

BROADCAST=192.168.0.255

GATEWAY=192.168.0.1

DEFROUTE=yes

ONBOOT=yes

NM_CONTROLLED=no

IPV4_FAILURE_FATAL=yes

IPV6INIT=no


[root@openstack-net ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s9

DEVICE=enp0s9

DEVICETYPE=ovs

TYPE=OVSPort

OVS_BRIDGE=br-ex

ONBOOT=yes

NM_CONTROLLED=no

IPV6INIT=no



[root@openstack-net ~]# ovs-vsctl show

fd89eff3-c539-4250-8922-854f550124bc

    Bridge br-ex

        Port br-ex

            Interface br-ex

                type: internal

        Port "qg-05c23c0b-11"

            Interface "qg-05c23c0b-11"

                type: internal

        Port "enp0s9"

            Interface "enp0s9"

    Bridge br-int

        fail_mode: secure

        Port patch-tun

            Interface patch-tun

                type: patch

                options: {peer=patch-int}

        Port "qr-02fc6bc6-04"

            tag: 1

            Interface "qr-02fc6bc6-04"

                type: internal

        Port br-int

            Interface br-int

                type: internal

        Port "tap44e6cf82-31"

            tag: 1

            Interface "tap44e6cf82-31"

                type: internal

    Bridge br-tun

        fail_mode: secure

        Port "vxlan-0a0a0a08"

            Interface "vxlan-0a0a0a08"

                type: vxlan

                options: {df_default="true", in_key=flow, local_ip="10.10.10.7", out_key=flow, remote_ip="10.10.10.8"}

        Port patch-int

            Interface patch-int

                type: patch

                options: {peer=patch-tun}

        Port br-tun

            Interface br-tun

                type: internal

    ovs_version: "2.5.0"

Open vSwitch 의 브리지 인터페이스를 조회해 보면, br-ex 브리지에 br-ex 포트와 enp0s9 포트가 연결되어 있음을 볼 수 있다.



Controller 노드의 환경변수 설정 스크립트 복사


  • Network 노드, Compute 노드에서 CLI 명령 실행이 필요할 경우에 대비하여 스크립트 복사


Controller 노드의 keystonerc 관련 파일들을 다음과 같이 Network 노드, Compute 노드에 복사해 둔다


[root@openstack-ctrl ~]# scp keystonerc_* root@openstack-net:~

[root@openstack-ctrl ~]# scp keystonerc_* root@openstack-cmp1:~



9. Horizon 웹을 통해 Cloud 플랫폼 사용 준비 과정


  • Horizon 웹 UI 사용 준비 - 클라우드 네트워크 설정


시스템 구성도의 Admin VM에 해당하는 VM에서, firefox 웹브라우저를 통해 http://10.10.10.6으로 접속, admin 계정과 answer.txt 에서 지정한 암호를 통해 로그인


tenant 서비스를 위해서 demo 프로젝트를 사용한다고 가정했을 때,  해당 프로젝트에서 사용할 네트워크를 생성, 설정하는 과정을 다음과 같이 진행한다.


System->Routers 페인, 라우터 목록에서 router1 삭제 


System->Networks 페인, 사용하지 않는 네트워크(public_subnet) 을 삭제



networks 패널에서, '+Create Network' 을 선택하고 admin 프로젝트에 대해 public 네트워크를 새로이 생성(본 케이스에서는 vxlan 방식, shared - External network).



Subnet Detail 에서는, 네트워크 내부에 DHCP 서버(iptime 공유기)가 존재하므로, Enable DHCP 는 해제하고, 할당 가능한 IP 범위를 입력


admin 계정을 로그아웃하고, tenant 서비스를 설정/사용하기 위한 demo 계정으로 로그인


앞에서 admin 을 통해 생성, 설정한 네트워크를 사용하기 위해, 왼쪽 메뉴에서 Project->Network->Router 패널을 선택하고 '+Create Router' 을 클릭하여 demo 프로젝트에서 사용할 라우터를 생성. External Network 항목에 대해, 앞서 생성했던 public 네트워크를 선택





'+Add Interface' 클릭을 통해, 앞서 생성한 사설 네트워크와의 연결을 위한 인터페이스를 추가



좌측 메뉴의 Network 패널에서 Network Topology 를 선택하여 현재 구성된 네트워크의 구조를 확인한다. 여기까지 성공적으로 진행하였다면 클라우드 환경을 본격적으로 사용하기 위한 전체 설정 과정은 완료한 것이며, 다음의 필수 준비과정 몇 가지를 거치면 모든 준비가 끝나고 VM을 생성, 관리할 수 있는 요건을 갖추게 되었다.


11. VM 인스턴스 생성 관리를 위한 준비 & 실행 단계


  • security Group 생성 확인

 Compute->Access & Security->Security Group


시스템에 디폴트로 적용되는 Security Group 이 이미 생성되어 있다. 필요시 별도로 생성하여 사용하면 됨.


  • Key Pair 생성



Compute->Access & Security->Key Pairs->Create Key Pair, pem 파일 다운로드 및 보관



  • Floating IP 생성



Floating IP를 할당 필요한 갯수만큼 할당 받는다



  • VM Image 확인


Openstack 에 포함된 테스트용 초소형 OS image(12MB) 외에도, Ubuntu Cloud image 사이트나 CentOS cloud image 사이트 등에서 다운로드 받아 두고, Openstack image로 업로드(admin 계정으로)해서 사용할 수 있다


  • VM instance 생성








  • Ubuntu VM instance 생성하고 접속하기

별도의 전용 Security Group 을 생성해 둔다


Ubuntu VM을 만들기 위한 Flavor 템플릿을 생성해 둔다(admin 계정)








새로이 Ubuntu VM Instance 를 생성하고, 앞에서 할당해 두었던 Floating IP 들 중에서 하나를 선택하여 Associate 를 클릭하면 VM의 내부 사설 port(10.0.0.*) 과 Floating IP가 연결된다



Ubuntu VM 에 연결된 Floating IP 로 ping 테스트와 ssh 접속을 수행해 본다



12. LBaas(LB As A Service) 의 설정과 테스트


  • Haproxy Load Balancer 사용을 위한 준비

새로운 VM과 LB에 할당할 Floating IP 를 추가한다


LB pool 에 할당할 새로운 Ubuntu VM 을 생성해 둔다




LB pool 에 포함될 VM 들에 접속하여 nginx 패키지를 설치한다(외부 접속을 위해 /etc/resolv.conf 에 nameserver 를 추가하고, apt-get update 를 한 이후, apt-get install nginx 로 패키지 설치). 설치 이후 curl http://localhost 로 자체 접속 테스트.


각 VM의 웹서버에 80 port 로 접속이 가능하도록, 기존의 Security Group에 새로운 Rule 을 추가한다


VM들의 웹서버에 접속이 가능한지 웹브라우저를 통해 각각 접속해 본다



Network->Load Balancer, +Add Pool 클릭 및 저장 후,


Add VIP 선택


IP address에는 VM의 사설 IP 대역에 해당하는 IP를 입력. Connection Limit 는 -1 또는 제한되는 연결 갯수 입력 & 저장


Associate Floating IP 선택.


미리 준비한 Floating IP를 선택하고 Associate 클릭 & 저장


Members 탭 선택, +Add Member 클릭


Add Member 클릭. Pool 선택 & 대상 VM, port 번호 등 설정



웹브라우저에서 LB VIP로 접속하여 확인 완료



- Barracuda -


반응형