Neutron - Controller Node 설치
Database 생성
1. 데이터베이스 액세스 클라이언트를 사용하여 root사용자로 데이터베이스 서버에 연결합니다.
# mysql -u root -p
2. neutron데이터베이스 생성 :
MariaDB [(none)]> CREATE DATABASE neutron;
3. neutron데이터베이스에 액세스 권한 부여 :
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
IDENTIFIED BY 'NEUTRON_DBPASS';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
IDENTIFIED BY 'NEUTRON_DBPASS';
4. admin관리자 전용 CLI 명령을 사용하기 위해 아래 명령어 실행합니다.
# . admin-openrc
5. 사용자 생성
# openstack user create --domain default --password-prompt neutron
6. 프로젝트에 사용자를 admin 역할로 추가합니다.
# openstack role add --project service --user neutron admin
7. neutron service를 추가해줍니다.
# openstack service create --name neutron \
--description "OpenStack Networking" network
8. neutron API 서비스 엔드포인트를 생성합니다.
# openstack endpoint create --region RegionOne \
network public http://controller:9696
# openstack endpoint create --region RegionOne \
network internal http://controller:9696
# openstack endpoint create --region RegionOne \
network admin http://controller:9696
네트워킹 옵션 구성
옵션 1과 2로 표시되는 두 가지 아키텍처 중 하나를 사용하여 네트워킹 서비스를 배포할 수 있습니다.
옵션 1은 인스턴스를 공급자(외부) 네트워크에 연결하는 것만 지원하는 가장 간단한 아키텍처를 배포합니다. 셀프 서비스(사설) 네트워크, 라우터 또는 유동 IP 주소가 없습니다. admin또는 다른 권한 있는 사용자 만 공급자 네트워크를 관리할 수 있습니다.
옵션 2는 셀프 서비스 네트워크에 인스턴스 연결을 지원하는 계층 3 서비스로 옵션 1을 확장합니다. 또는 다른 권한 이 demo없는 사용자는 셀프 서비스 네트워크와 공급자 네트워크 간의 연결을 제공하는 라우터를 포함하여 셀프 서비스 네트워크를 관리할 수 있습니다. 또한 유동 IP 주소는 인터넷과 같은 외부 네트워크의 셀프 서비스 네트워크를 사용하여 인스턴스에 대한 연결을 제공합니다.
셀프 서비스 네트워크는 일반적으로 오버레이 네트워크를 사용합니다. VXLAN과 같은 오버레이 네트워크 프로토콜에는 오버헤드를 늘리고 페이로드 또는 사용자 데이터에 사용할 수 있는 공간을 줄이는 추가 헤더가 포함됩니다. 가상 네트워크 인프라에 대한 지식 없이 인스턴스는 1500바이트의 기본 이더넷 MTU(최대 전송 단위)를 사용하여 패킷 전송을 시도합니다. 네트워킹 서비스는 DHCP를 통해 인스턴스에 올바른 MTU 값을 자동으로 제공합니다. 그러나 일부 클라우드 이미지는 DHCP를 사용하지 않거나 DHCP MTU 옵션을 무시하며 메타데이터 또는 스크립트를 사용한 구성이 필요합니다.
여기선 옵션2 인 셀프 서비스 네트워크로 구성하겠습니다.
1. 패키지 설치 :
# apt install neutron-server neutron-plugin-ml2 \
neutron-linuxbridge-agent neutron-l3-agent neutron-dhcp-agent \
neutron-metadata-agent
2. /etc/neutron/neutron.conf 파일을 아래와 같이 수정해줍니다.
[database]
# ...
connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
[DEFAULT]
# ...
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = true
transport_url = rabbit://openstack:RABBIT_PASS@controller
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
[keystone_authtoken]
# ...
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = NEUTRON_PASS
[nova]
# ...
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = NOVA_PASS
[oslo_concurrency]
# ...
lock_path = /var/lib/neutron/tmp
# 설정 안할시 neutron-server 서비스 시작 안됌
# 이제 linuxbridge사용하려면 아래 옵션 설정 필수
[experimental]
linuxbridge = true
ML2(Modular Layer 2) 플러그인 구성
- ML2 플러그인은 Linux 브리지 메커니즘을 사용하여 인스턴스에 대한 계층 2(브리징 및 스위칭) 가상 네트워킹 인프라를 구축합니다.
- /etc/neutron/plugins/ml2/ml2_conf.ini 파일을 아래와 같이 수정해줍니다.
[ml2]
...
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population
extension_drivers = port_security
[ml2_type_flat]
...
flat_networks = provider
[ml2_type_vxlan]
vni_ranges = 1:1000
[securitygroup]
enable_ipset = true
Linux 브리지 에이전트 구성
- Linux 브리지 에이전트는 인스턴스용 레이어 2(브리징 및 스위칭) 가상 네트워킹 인프라를 구축하고 보안 그룹을 처리합니다.
- /etc/neutron/plugins/ml2/linuxbridge_agent.ini 파일을 아래와 같이 수정해줍니다.
[linux_bridge]
physical_interface_mappings = provider:eth0
[vxlan]
...
enable_vxlan = true
local_ip = 10.0.2.4
l2_population = true
[securitygroup]
...
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
커널 파라미터 변경
# vi /etc/sysctl.conf
# ...
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
# sysctl -p
Layer 3 Agent 구성
- L3(계층 3) 에이전트는 셀프 서비스 가상 네트워크에 대한 라우팅 및 NAT 서비스를 제공합니다.
- /etc/neutron/l3_agent.ini 파일을 아래와 같이 수정해줍니다.
[DEFAULT]
...
interface_driver = linuxbridge
DHCP Agent 구성
- DHCP 에이전트는 가상 네트워크에 DHCP 서비스를 제공합니다.
- /etc/neutron/dhcp_agent.ini 파일을 아래와 같이 수정해줍니다.
[DEFAULT]
...
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
MetaData Agent 구성
- DHCP 에이전트는 가상 네트워크에 DHCP 서비스를 제공합니다.
- /etc/neutron/metadata_agent.ini 파일을 아래와 같이 수정해줍니다.
[DEFAULT]
...
nova_metadata_host = controller
metadata_proxy_shared_secret = METADATA_SECRET
METADATA_SECRET적합한 값으로 교체 합니다.
Networking service를 사용하도록 컴퓨팅 서비스 구성
- /etc/nova/nova.conf 파일을 아래와 같이 수정해줍니다.
[neutron]
...
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = NEUTRON_PASS
service_metadata_proxy = true
metadata_proxy_shared_secret = METADATA_SECRET
설치완료
1. neutron 데이터베이스를 채웁니다.
# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
- 컴퓨팅 및 네트워킹 서비스를 다시 시작합니다.
systemctl restart nova-api
systemctl restart neutron-server
systemctl restart neutron-linuxbridge-agent
systemctl restart neutron-dhcp-agent
systemctl restart neutron-metadata-agent
systemctl restart neutron-l3-agent
Neutron - Compute Node 설치
컴퓨팅 노드는 인스턴스에 대한 연결 및 보안 그룹을 처리합니다.
여기선 컨트롤러 노드와 컴퓨트노드를 합쳐서 구축할 예정이라 아래 섹션에서 중복된 옵션이 있을 수 있습니다. 중복되는것은 무시하고 새로 추가되는 옵션만 넣으면 됩니다.
1. 패키지 설치 :
# apt install neutron-linuxbridge-agent
2. /etc/neutron/neutron.conf 파일을 아래와 같이 수정해줍니다.
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller
auth_strategy = keystone
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = NEUTRON_PASS
[oslo_concurrency]
...
lock_path = /var/lib/neutron/tmp
네트워킹 옵션 2: 셀프 서비스 네트워크
컴퓨팅_ 노드 에서 네트워킹 구성 요소를 구성 합니다.
Linux 브리지 에이전트 구성
- Linux 브리지 에이전트는 인스턴스용 레이어 2(브리징 및 스위칭) 가상 네트워킹 인프라를 구축하고 보안 그룹을 처리합니다.
- /etc/neutron/plugins/ml2/linuxbridge_agent.ini 파일을 아래와 같이 수정해줍니다.
[linux_bridge]
physical_interface_mappings = provider:eth0
[vxlan]
...
enable_vxlan = true
local_ip = 10.0.2.4
l2_population = true
[securitygroup]
...
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
커널 파라미터 변경
# vi /etc/sysctl.conf
...
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
# sysctl -p
Networking service를 사용하도록 컴퓨팅 서비스 구성
- /etc/nova/nova.conf 파일을 아래와 같이 수정해줍니다.
[neutron]
# ...
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = NEUTRON_PASS
설치완료
- 컴퓨팅 및 네트워킹 서비스를 다시 시작합니다.
systemctl restart nova-compute
systemctl restart neutron-linuxbridge-agent
'Cloud > Openstack' 카테고리의 다른 글
openstack 최신 yoga버전 수동 설치 - Cinder (0) | 2022.05.11 |
---|---|
openstack 최신 yoga버전 수동 설치 - Horizon (0) | 2022.05.11 |
openstack 최신 yoga버전 수동 설치 - Nova (0) | 2022.05.11 |
openstack 최신 yoga버전 수동 설치 - Placement (0) | 2022.05.11 |
openstack 최신 yoga버전 수동 설치 - Glance (0) | 2022.05.11 |