일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- no-param-reassign
- 쿠버네티스
- microservices
- OOP
- app&desk
- serverless
- AWS
- jenkins
- 젠킨스
- fargate
- eslint
- rocky
- 프로젝트
- server base computing
- centos7
- 설치
- 가상 데스크탑 환경
- 마이크로서비스
- 머신러닝
- 오픈스택
- kubernetes
- xenserver app&desk
- IaaS
- 서버 베이스 컴퓨팅
- 객체지향
- 구축
- 로키
- sagemaker
- eks
- openstack
- Today
- Total
IT
[openstack] 3.1 기본 설정 - centos7 오픈스택 설치 및 구축 프로젝트 (rocky 버전) 본문
[openstack] 3.1 기본 설정 - centos7 오픈스택 설치 및 구축 프로젝트 (rocky 버전)
abcee 2019. 3. 28. 20:413. 구성 과정
3.1 기본 설정
3.1.1 방화벽 설정
○ openstack은 자체 방화벽 프로그램을 사용하므로 centos에서 돌아가는 방화벽을 모두 종료하는 것이 좋다.
○ selinux
• 부팅 시 selinux 로딩 안 하도록 /etc/sysconfig/selinux 을 통해 설정 변경
# vi /etc/sysconfig/selinux
• [/etc/sysconfig/selinux]
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
• 현재 로딩된 selinux 종료
# setecforce 0
○ firewalld 서비스
• firewalld 서비스 종료 및 부팅 등록 해제
# systemctl stop firewalld.service
# systemctl disable firewalld.service
3.1.2 호스트 네트워크 설정
○ 각 Node들에서 네트워크를 구성한다.
○ 기본적으로 각 노드에서 NIC는 관리자용으로 사용할 NAT 카드 하나와 외부 인터넷망과 연결될 Bridge 카드 총 2개의 카드로 구성한다.
○ NAT 구성
• 관리자용 NAT카드는 관리자가 대시보드를 통해 Controller Node에 접근하거나 다른 노드의 리소스가 필요하여 각 노드끼리 통신을 할 때 사용되는 네트워크로 구성한다.
• /etc/sysconfig/network-scripts/ifcfg-ens33 을 통해 설정 변경
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
• [/etc/sysconfig/network-scripts/ifcfg-ens33]
DEVICE=INTERFACE_NAME
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
○ Bridge 구성
• 인터넷용 Bridge카드는 Compute Node가 외부 인터넷과 통신하기 위해 필요한 Provider 인터페이스로 Compute Node에서 구성한다.
• /etc/sysconfig/network-scripts/ifcfg-ens34 을 통해 설정 변경
# vi /etc/sysconfig/network-scripts/ifcfg-ens34
• [/etc/sysconfig/network-scripts/ifcfg-ens34]
DEVICE=INTERFACE_NAME
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
○ Controller Node 및 Compute Node에서 도메인을 통한 각 노드의 URL 접근이 가능하도록 호스트 이름과 각 노드의 관리용 IP를 매핑 시킨다.
• /etc/hosts 을 통해 설정 변경
# vi /etc/hosts
• [/etc/hosts]
# controller
1.0.0.61 controller
# compute1
1.0.0.62 compute1
# block1
1.0.0.63 block1
# object1
1.0.0.64 object1
# object2
1.0.0.65 object2
○ 검증
• 모든 노드의 네트워크를 설정한 후 네트워크 통신이 잘되는지 테스트한다.
• 각 노드에서 외부 통신이 잘되는지 확인
# ping -c 4 openstack.org
• 각 노드에서 다른 노드의 도메인으로 통신이 잘되는지 확인
# ping -c 4 compute1
3.1.3 NTP 설정
○ OpenStack은 여러 노드로 구성되고 각각의 노드는 기본적으로 단말기를 분리하여 구성하는 것을 추천한다. 이때 NTP를 통해 각 단말기의 시간 정보를 동기화하여 보다 정확한 서비스가 가능하도록 하는 것이 좋다.
○ Controller Node
• 패키지 설치
# yum install -y chrony
• /etc/chrony.conf 을 통해 설정 변경
# vi /etc/chrony.conf
• [/etc/chrony.conf]
# NTP 서버 설정
# server NTP_SERVER iburst
server 1.kr.pool.ntp.org iburst
server 0.asia.pool.ntp.org iburst
server 2.asia.pool.ntp.org iburst
# 다른 노드가 컨트롤러 노드를 통해 NTP 서비스를 받을 수 있도록 네트워크 접근 허용 설정
# allow [네트워크 대역]
allow 1.0.0.0/24
• chronyd.service 가 부팅 시 시작되도록 등록하고 서비스를 시작한다.
# systemctl enable chronyd.service
# systemctl start chronyd.service
○ Compute Node
• 패키지 설치
# yum install -y chrony
• /etc/chrony.conf 을 통해 설정 변경
# vi /etc/chrony.conf
• [/etc/chrony.conf]
# NTP 서버가 controller를 가리키도록 설정
server controller iburst
• chronyd.service 가 부팅 시 시작되도록 등록하고 서비스를 시작한다.
# systemctl enable chronyd.service
# systemctl start chronyd.service
3.1.4 OpenStack 패키지 설치
○ OpenStack Rockey 버전을 사용하기 위해 패키지 설치가 필요하다.
○ 모든 노드
• centos-release-openstack-rocky 설치
# yum install -y centos-release-openstack-rocky
• yum upgrade를 하여 모든 패키지를 업그레이드
# yum upgrade -y
• openstack 클라이언트를 설치
# yum install -y python-openstackclient
• openstack-selinux를 설치
# yum install -y openstack-selinux
3.1.5 SQL Database 설정
○ 서비스들의 정보 저장을 위해 데이터베이스를 컨트롤러에 구성해야 한다.
○ DB는 MariaDB를 사용한다.
○ Controller Node
• 패키지 설치
# yum install -y mariadb mariadb-server python2-PyMySQL
• /etc/my.cnf.d/openstack.cnf 을 통해 설정 변경
# vi /etc/my.cnf.d/openstack.cnf
• [/etc/my.cnf.d/openstack.cnf]
[mysqld]
# my-sql 서비스에 컨트롤러를 제외한 다른 노드가 접근하기 위해 관리용 IP를 할당한다.
# bind-address = [controller의 관리용 IP]
bind-address = 1.0.0.63
# db 기본 설정을 한다.
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
• mariadb.service가 부팅 시 시작되도록 등록하고 서비스를 시작한다.
# systemctl enable mariadb.service
# systemctl start mariadb.service
• mysql_secure_installation 스크립트를 통해 데이터베이스 암호화 설정을 한다.
# mysql_secure_installation
3.1.6 메시지 큐 설정
○ 서비스 간 상호작용에 사용될 메시지 큐를 컨트롤러 노드에 구성해야 한다.
○ 메시지 큐는 RabbitMQ를 사용한다.
○ 컨트롤러
• 패키지 설치
# yum install -y rabbitmq-server
• rabbitmq-server.serivce 가 부팅 시 시작되도록 등록하고 서비스를 시작한다.
# systemctl enable rabbitmq-server.service
# systemctl start rabbitmq-server.service
• rabbitmq에 openstack 사용자를 추가한다.
# rabbitmqctl add_user openstack RABBIT_PASS
• openstack 사용자의 rabbitmq에 대한 권한을 할당한다. (설정권한, 쓰기권한, 읽기 권한을 모두 할당한다.)
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
3.1.7 Memcached 설정
○ Identiry 서비스 인증에서 토큰을 캐싱하기 위해 컨트롤러 노드에 구성한다.
○ Controller Node
• 패키지 설치
# yum install memcached python-memcached
• /etc/sysconfig/memcached을 통해 설정 변경
# vi /etc/sysconfig/memcached
• [/etc/sysconfig/memcached]
OPTIONS="-l 127.0.0.1,::1,controller"
• memcached.service가 부팅 시 시작되도록 등록하고 서비스를 시작한다..
# systemctl enable memcached.service
# systemctl start memcached.service