컨트롤러 노드 설치와 설정

컨트롤러 노드 설치와 설정

선행조건

OpenStack 네트워킹 (neutron) 서비스를 구성하기 전에, 데이터베이스, 서비스 credential, 엔드포인트를 생성해야 합니다.

  1. 데이터베이스를 생성하기 위하여, 다음 과정을 완료해야 합니다:

    • 데이터베이스 액세스 클라이언트를 사용하여 데이터베이스 서버에 root 사용자로 연결합니다:

      $ mysql -u root -p
      
    • neutron 데이터베이스를 생성합니다:

      mysql> CREATE DATABASE neutron;
      
    • neutron 데이터베이스에 적합한 액세스를 부여하고, NEUTRON_DBPASS 를 적절한 암호로 변경합니다:

      mysql> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
        IDENTIFIED BY 'NEUTRON_DBPASS';
      mysql> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
        IDENTIFIED BY 'NEUTRON_DBPASS';
      
    • 데이터베이스 접속 클라이언트를 종료합니다.

  2. admin credential을 소스로 사용하여 관리자 전용 CLI 명령어에 대한 액세스를 갖습니다:

    $ . admin-openrc
    
  3. 서비스 credential을 생성하기 위해, 다음 스텝들을 완료합니다:

    • neutron 사용자를 생성합니다:

      $ openstack user create --domain default --password-prompt neutron
      
      User Password:
      Repeat User Password:
      +---------------------+----------------------------------+
      | Field               | Value                            |
      +---------------------+----------------------------------+
      | domain_id           | default                          |
      | enabled             | True                             |
      | id                  | 319f34694728440eb8ffcb27b6dd8b8a |
      | name                | neutron                          |
      | password_expires_at | None                             |
      +---------------------+----------------------------------+
      
    • admin 역할을 neutron 사용자에 추가합니다:

      $ openstack role add --project service --user neutron admin
      

      주석

      이 명령어는 출력이 없습니다.

    • neutron 서비스 엔티티를 생성합니다:

      $ openstack service create --name neutron \
        --description "OpenStack Networking" network
      
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | OpenStack Networking             |
      | enabled     | True                             |
      | id          | f71529314dab4a4d8eca427e701d209e |
      | name        | neutron                          |
      | type        | network                          |
      +-------------+----------------------------------+
      
  4. 네트워킹 서비스 API 엔드포인트를 생성합니다:

    $ openstack endpoint create --region RegionOne \
      network public http://controller:9696
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 85d80a6d02fc4b7683f611d7fc1493a3 |
    | interface    | public                           |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      network internal http://controller:9696
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 09753b537ac74422a68d2d791cf3714f |
    | interface    | internal                         |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      network admin http://controller:9696
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 1ee14289c9374dffb5db92a5c112fc4e |
    | interface    | admin                            |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    

네트워킹 옵션 구성

옵션 1 및 2에 의해 표현되는 두 아키텍처 중 하나를 사용하여 네트워킹 서비스를 배포할 수 있습니다.

옵션 1은 프로바이더 (외부) 네트워크에 대한 인스턴스 연결만을 지원하는 가능한 단순한 아키텍처로 배포합니다. 셀프 서비스 (사설) 네트워크, 라우터 또는 플로팅 IP 주소가 없습니다. admin 또는 기타 권한이 있는 사용자만 프로바이더 네트워크를 관리할 수 있습니다.

옵션 2는 옵션 1에 셀프 서비스 네트워크에 대한 인스턴스 연결을 지원하는 layer-3 서비스를 확장합니다. demo 또는 다른 관리자 권한을 갖지 않은 사용자가 셀프 서비스와 프로바이더 네트워크 간 연결을 제공하는 라우터를 포함한 셀프 서비스 네트워크를 관리할 수 있습니다. 부가적으로, 플로팅 IP 주소는 인터넷과 같은 외부 네트워크로부터 셀프 서비스 네트워크를 사용하여 인스턴스에 대한 연결을 제공합니다.

셀프 서비스 네트워크는 보통 오버레이 네트워크를 사용합니다. VXLAN과 같은 오버레이 네트워크 프로토콜은 오버헤드를 증가시키고 페이로드 또는 사용자 데이터를 위해 사용 가능한 용량을 감소시키는 추가적인 패킷 헤더를 포함합니다. 가상 네트워크 인프라에 대한 지식이 없더라도 인스턴스들은 기본 이더넷에 대한 1500 바이트의 maximum transmission unit (MTU) 를 사용하여 패킷 전송을 시도합니다. 네트워킹 서비스는 DHCP를 통해 인스턴스에 알맞은 MTU 값을 자동으로 제공합니다. 그러나, 몇몇 클라우드 이미지는 DHCP를 사용하지 않거나 DHCP MTU 옵션을 무시하며 메타데이터 또는 스크립트를 사용한 구성을 필요로 합니다.

주석

옵션 2는 또한 인스턴스에 대한 프로바이더 네트워크 연결을 지원합니다.

구체적으로 서비스를 구성하기 위해 다음 네트워킹 옵션 중 하나를 선택합니다. 그리고 나서, 메타데이터 에이전트 구성 를 진행한 후 여기로 돌아옵니다.

메타데이터 에이전트 구성

metadata agent 는 인스턴스에 대한 자격 증명과 같은 구성 정보를 제공합니다.

  • /etc/neutron/metadata_agent.ini 파일을 수정하여 다음 작업을 완료합니다:

    • [DEFAULT] 섹션에서 메타데이터 호스트 및 공유 암호를 구성합니다:

      [DEFAULT]
      ...
      nova_metadata_ip = controller
      metadata_proxy_shared_secret = METADATA_SECRET
      

      메타데이터 프록시에 대한 적합한 암호로 METADATA_SECRET 를 변경합니다.

네트워킹 서비스를 사용하기 위해 Compute 서비스를 구성합니다

  • /etc/nova/nova.conf 파일을 편집하여 다음 작업을 진행합니다:

    • [neutron] 섹션에서 접근 매개변수를 구성하고, 메타데이터 프록시를 활성화하고, 암호를 구성합니다:

      [neutron]
      ...
      url = http://controller:9696
      auth_url = http://controller:35357
      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
      

      Identity 서비스에서 neutron 사용자의 암호로 NEUTRON_PASS 를 변경합니다.

      메타데이터 프록시에대한 암호로 METADATA_SECRET 를 변경합니다.

설치 마무리

주석

SLES는 디폴트로 apparmor 가 활성화되어 있고 dnsmasq를 제한합니다. apparmor 비활성화 또는 dnsmasq 프로필만을 비활성화할 필요가 있습니다:

# ln -s /etc/apparmor.d/usr.sbin.dnsmasq /etc/apparmor.d/disable/
# systemctl restart apparmor
  1. Compute API 서비스를 재시작합니다:

    # systemctl restart openstack-nova-api.service
    
  2. 네트워킹 서비스를 시작하고 시스템 부팅할 때 시작하도록 설정합니다.

    두 네트워킹 옵션에 대해서:

    # systemctl enable openstack-neutron.service \
      openstack-neutron-linuxbridge-agent.service \
      openstack-neutron-dhcp-agent.service \
      openstack-neutron-metadata-agent.service
    # systemctl start openstack-neutron.service \
      openstack-neutron-linuxbridge-agent.service \
      openstack-neutron-dhcp-agent.service \
      openstack-neutron-metadata-agent.service
    

    네트워킹 옵션 2에 대해 layer-3 서비스를 활성화하여 시작합니다:

    # systemctl enable openstack-neutron-l3-agent.service
    # systemctl start openstack-neutron-l3-agent.service
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.