openstack

20210706 (화) 설치 후 기초#1

gusalstm 2021. 7. 6. 16:13
반응형

실습

controller 노드

cpu 2개

8G RAM

 

compute 노드

cpu 2개

4G RAM

 

2노드 사용시

Controller Node Horizon, Keystone, Heat, Ceilometer, Glance, Cinder, Swift, Neutron
Compute Node Nova, Ceilometer, Neutron

4노드 사용시

Controller Node Horizon, Keystone, Heat, Ceilometerm Neutron
Compute Node Nova, Ceilometer, Neutron
Network Node Neutron
Storage Node Glance, Cinder, Swift

오픈스택 노드 (P104)

 controller : 관리 노드, HA구성 (Pacemaker)

               * 시스템 부하가 크므로 성능 고려 필요 (CPU/RAM/Network)

 compute :  인스턴스를 실행 → 사용자가 사용할 리소스

                compute노드에 할당된 리소스만큼만 사용자에게 제공됨

                (CPU/RAM/DISK 등의 리소스를 인스턴스에 할당)

 network : 네트워크 기능 (외부연결)  → 네트워크 병목현상

 storage : Cinder / Swift 등의 스토리지 제공 (디스크IO 뿐만 아니라 네트워크 속도도 중요함)

 

P99

설치완료 후 설정  (NTP 서버 설정 중요!)

 

root에서 ls 통해서 두가지 파일 확인 answers.txt keystonerc_admin

vim answers.txt

cp answers.txt answers.conf 로 변경 → conf로 변경하면 라인별로 색깔입혀져서 가독성이 좋아짐

[root@controller ~]# vim answers.conf

CONFIG_CONTROLLER_HOST=10.0.2.10

CONFIG_COMPUTE_HOSTS=10.0.2.11

CONFIG_KEYSTONE_ADMIN_USERNAME=admin

CONFIG_KEYSTONE_ADMIN_PW=dkagh1. (대시보드용)

네트워크 서비스. 웹서비스 수정

[root@controller ~]# ip a

loopback 변경없음

enp0s3 NAT network : ip주소가 없음- ovs-system 의 구성요소로 사용중이라는 의미

enp0s8 : 변경없음

ovs-system : ip주소 없음

br-ex : inet 10.0.2.10/24 설정

 

[root@controller ~]# cd /etc/sysconfig/network-scripts/

[root@controller network-scripts]# vim ifcfg-enp0s3

ifcfg-enp0s3 속성 확인

DEVICE=enp0s3
NAME=enp0s3
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
~                   

 

 

 

외부통신 브릿지 이름 br-ex : 인스턴스 인터페이스들이 연결되는 브릿지

따라서 br-ex의 설정파일을 봐야함.

[root@controller network-scripts]# vim ifcfg-br-exDEVICE=br-ex

ONBOOT=yes
IPADDR=10.0.2.10
NETMASK=255.255.255.0
GATEWAY=10.0.2.1
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO=static
TYPE=OVSBridge
OVS_EXTRA="set bridge br-ex fail_mode=standalone"

 

-----------------------------

/etc/httpd/conf.d/httpd.conf

[root@controller conf.d]# vim 15-horizon_vhost.conf

block 안에

ServerAlias 192.168.56.10 추가 

:wq

[root@controller conf.d]# grep ServerA /etc/httpd/conf.d/15-horizon_vhost.conf
  ServerAlias 10.0.2.10
  ServerAlias 192.168.56.10 → 추가 확인
  ServerAlias controller.cccr3.co.kr
  ServerAlias localhost

http://192.168.56.10/ → 대쉬보드 접속 (유저네임,암호 입력)

http://192.168.56.10/dashboard/auth/login/ 

 

----------------------------

접속후 설정

 

compute 탭 개요

인스턴트 탭 : 인스턴스를 만드는 곳

인스턴스 : 가상머신(vm), 예전에서는 server라는 용어도 사용

 ※ 이미지 : 인스턴스의 기본요소, 부팅가능한 운영체제가 설치된 가상머신의 디스크

 ※ 플레이버 : 인스턴스의 기본요소, 인스턴스의 HW 할당량을 설정

 ※ 네트워크 : 인스턴스의 기본요소, 인스턴스의 연결을 담당

프로젝트 : 작업환경, 테넌트라는 용어도 사용 

네트워크 토폴로지 : 인스턴스와 네트워크를 생성하면 토폴로지가 보여짐

 

 

<인스턴스 만들기>

인스턴스#1 vm1, 이미지 img1, 플레이버 f1 네트워크 net1

인스턴스#2 vm2, 이미지 img2, 플레이버 f1 -> m1.medium 네트워크 net1

이름 f1 cpu 1, ram 2G, disk 10G

이름 img1 , protected 활성화 

이름 img2 최소메모리 4G

 

 1) 인스턴스 : 프로젝트 > compute > 인스턴스 > 인스턴스 시작 (실행의 개념)

  →이미지, flavor, 네트워크 설정이 필요

 2) 이미지 : 프로젝트 > compute > 이미지 > 이미지 생성

 3) flavor : 관리 > compute > flavor > flavor 생성 (flavor는 관리탭에 있음 - 관리자권한으로만 가능) 

 4-1) 네트워크 : 프로젝트 > 네트워크 > 네트워크토폴로지 or 네트워크 > 네트워크 생성

     (내부적으로 사용하는 주소이므로 게이트웨이 주소를 입력하지 않아도 됨)

     dhcp활성화 -> 인스턴스가 자동으로 ip 할당

 4-2) 외부네트워크 : 관리 > 네트워크 > 네트워크 생성 >

     네트워크 탭 : 이름 [NAME] > 프로젝트 admin > 공급자 네트워크 유형 flat > 물리적인 주소(PHYSNET) extnet > 공유, 외부네트워크 체크 

     서브넷 탭 : 외부네트워크 주소 및 게이트 웨이 입력  → 실제 컴퓨터 네트워크 주소 10.0.2.10/24

     서브넷 세부정보 탭 : DHCP 비활성화 (기존 DHCP와 충돌 발생) 

                                 Pools 할당 범위지정 : 10.0.2.100,10.0.2.200

                                 생성 후 서브넷 정보 체크 :  IP 할당 풀시작 10.0.2.100 - 끝 10.0.2.200

   ※ answers.txt 파일 참고    

      801 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat

      897 CONFIG_NEUTRON_OVS_EXTERNAL_PHYSNET=extnet

 

5) 인스턴스 시작 시, 이미지가 요구하는 최소 메모리를 flavor 가 충족시키지 못하면 인스턴스 생성 불가

     → img2 : 최소메모리 4G  &  f1 : 2G   : 충족x -> 생성 불가. 생성되도 status 에서 Active가 아닌 Error상태

  

기본 인스턴스 : 현재 만들어진 인스턴스는 외부과 차단되어있음. (백엔드에서만 사용하는 설정)
퍼블릭 인스턴스 : 서비스용으로 쓸려면 외부와 통신이 가능하게끔 설정해야함. (외부네트워크와 라우터 필요)

                      → "인스턴스→외부" 접속 가능

                      ++ 유동IP (Floating IP)와 보안그룹(방화벽)을 설정 ▶ "외부→인스턴스" 통신까지 완성

 

 6) 라우터 설정 : 프로젝트 > 네트워크 > 라우터 > 외부 네트워크 선택 (생성 후 변경해도 무방)

                      프로젝트 > 네트워크 > 네트워크토폴로지 > 라우터선택 : 인터페이스 추가 

               또는 프로젝트 > 네트워크 > 라우터 > 라우터 선택 > 인터페이스 탭 : 인터페이스 추가 

 

인스턴스 선택 > 콘솔탭 > 콘솔만 보기 (새창에서 열기) > ip주소부분 수정 > IP를 VM의 외부아이피로 설정 해야 콘솔에 접속 가능

 

콘솔창에서

$ lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda                   252:0    0  10G  0 disk
├─vda1            252:1    0    10G  0 part /
└─vda15          252:15    0   8M  0 part

vdb                   252:16    0  1G  0 disk /mnt

$

---------------------------------------------------------------------------------------------

  7) 보안그룹 세팅

    보안그룹은 인스턴스 생성 시 혹은 생성 후 설정 가능

  8) 유동 IP (floating IP)

    유동 IP는 인스턴스를 생성한 후 별도 설정을 통해 연결가능.

   +++ key pair 인증

    SSH Key pair 는 인스턴스를 생성할 때만 설정할 수 있음.

 

네트워크 > 보안그룹 > 규칙 추가 > ALL 

728x90