Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Juju 참을 사용하여 Contrail with OpenStack 설치

Juju Charms를 사용하여 Contrail을 구축할 수 있습니다. Juju는 프라이빗 클라우드 및 퍼블릭 클라우드에서 애플리케이션을 배포, 구성 및 효율적으로 관리할 수 있도록 지원합니다. Juju는 Juju 컨트롤러의 도움으로 클라우드에 액세스합니다. 참은 스크립트 및 메타데이터 모음을 포함하는 모듈이며 Juju와 함께 Contrail을 구축하는 데 사용됩니다.

Contrail은 다음과 같은 참 메뉴를 지원합니다.

  • contrail-agent

  • contrail-analytics

  • contrail-analyticsdb

  • contrail-controller

  • contrail-keystone-auth

  • contrail-openstack

이 주제에서는 Juju Charms를 사용하여 Contrail을 구축하는 방법에 대해 설명합니다.

Juju 참 메뉴를 사용한 Contrail 구축 준비

다음 단계에 따라 배포를 준비합니다.

  1. Juju를 설치합니다.
  2. Juju를 구성합니다.

    Juju에 클라우드를 추가하고, Juju가 지원하는 클라우드를 식별하고, Juju에 이미 추가된 클라우드도 관리할 수 있습니다.

    • Adding a cloud—Juju는 다양한 클라우드 유형을 인식합니다. 다음 방법 중 하나를 사용하여 Juju에 클라우드를 추가할 수 있습니다.

      • Adding a Cloud by Using Interactive Command

        예: Juju에 MAAS 클라우드 추가

        참고:

        Juju 2.x는 MAAS 시리즈 1.x 및 2.x와 호환됩니다.

      • Adding a Cloud Manually

        YAML 구성 파일을 사용하여 클라우드를 수동으로 추가합니다. 다음 명령을 입력합니다.

        예를 들어, 클라우드 junmaas를 추가하려면 디렉토리 maas-clouds.yaml의 구성 파일 이름이 라고 가정하고 다음 명령을 실행합니다.

        다음은 YAML 구성 파일의 형식입니다.

        참고:

        MAAS 클라우드 유형의 은( auth-types 는) 입니다 oauth1.

    • Identifying a supported cloud

      Juju는 아래에 주어진 클라우드 유형을 인식합니다. 명령을 사용하여 juju clouds Juju에서 지원하는 클라우드 유형을 나열합니다.

  3. Juju 컨트롤러를 만듭니다.
    참고:

    Juju 컨트롤러는 Juju 클라우드 환경에서 애플리케이션을 관리하고 추적합니다.

Contrail Charms 구축

Contrail Charms는 번들로 또는 수동으로 구축할 수 있습니다.

번들에 Contrail Charm 구축

Contrail Charms를 번들로 구축하려면 다음 단계를 따르십시오.

  1. Contrail Charms를 구축하십시오.

    Contrail Charms를 번들로 구축하려면 명령을 사용합니다 juju deploy <bundle_yaml_file> .

    다음 예는 bundle_yaml_file 를 사용하여 Amazon Web Services(AWS) 클라우드에 Contrail을 구축하는 방법을 보여줍니다.

    Contrail Charm 구축 번들 YAML 파일을 생성하거나 수정하여 다음을 수행할 수 있습니다.

    • Contrail 참 메뉴를 구축해야 하는 시스템 또는 인스턴스를 가리킵니다.

    • 필요한 옵션을 포함합니다.

      각 Contrail 참에는 특정 옵션 세트가 있습니다. 선택하는 옵션은 선택한 참 메뉴에 따라 달라집니다. 사용 가능한 옵션에 대한 자세한 내용은 Juju 참 옵션을 참조하십시오.

  2. (선택 사항) 배포 상태를 확인합니다.

    명령을 사용하여 배포 상태를 확인할 수 있습니다 juju status .

  3. 구성 문을 활성화합니다.

    구축 요구 사항에 따라 다음 구성 명령문을 활성화할 수 있습니다.

OpenStack을 사용한 Juju 참 수동 배포

배포를 시작하기 전에 다음을 확인합니다.

  • Juju 설치 및 구성

  • Juju 컨트롤러 생성

  • Ubuntu 16.04 또는 Ubuntu 18.04 설치됨

Juju Charms를 수동으로 배포하려면 다음 단계를 따르십시오.

  1. OpenStack, compute, Contrail을 위한 머신 인스턴스를 생성합니다.
  2. OpenStack 서비스를 배포합니다.

    다음 방법 중 하나를 사용하여 OpenStack 서비스를 배포할 수 있습니다.

    • By specifying the OpenStack parameters in a YAML file

      다음은 YAML 형식(nova-compute-config.yaml) 파일의 예입니다.

      이 명령을 사용하여 YAML 형식 파일을 사용하여 OpenStack 서비스를 배포합니다.

    • By using CLI

      CLI를 통해 OpenStack 서비스를 배포하려면:

    • By using a combination of YAML-formatted file and CLI

      YAML 형식 파일과 CLI의 조합을 사용하여 OpenStack 서비스를 배포하려면 다음을 수행합니다.

      참고:

      --to <machine number> 명령을 사용하여 응용 프로그램을 배포할 컴퓨터 또는 컨테이너를 가리킵니다.

      참고:

      애플리케이션에서 HAProxy 충돌을 방지하기 위해 다른 시스템 또는 다른 컨테이너에 OpenStack 서비스를 설정합니다.

  3. nova-compute를 배포하고 설정합니다.
    참고:

    nova-compute를 둘 이상의 컴퓨팅 머신에 배포할 수 있습니다.

    (선택 사항) 계산을 더 추가하려면 다음을 수행합니다.

  4. Contrail 서비스를 구축 및 구성합니다.
  5. 외부 트래픽에서 애플리케이션을 사용할 수 있도록 설정:
  6. HAProxy를 사용하지 않는 경우 외부 트래픽에서 contrail-controller 및 contrail-analytics 서비스를 사용할 수 있도록 합니다.
  7. SSL을 적용합니다.

    필요한 경우 SSL을 적용할 수 있습니다. Contrail 서비스와 함께 SSL을 사용하려면 easy-rsa 서비스 및 명령을 구축하여 contrail-controller 서비스 및 add-relation contrail-agent 서비스에 대한 관계를 생성하십시오.

  8. (선택 사항) HA 구성.

    컨트롤러를 두 개 이상 사용하는 경우 아래 제공된 HA 솔루션을 따르십시오.

    1. HAProxy 및 Keepalived 서비스를 배포합니다.

      HAProxy 참 메뉴는 Contrail 컨트롤러가 장착된 시스템에 구축됩니다. HAProxy 참 메뉴가 peering_mode 로 설정되어 active-active있어야 합니다. 이(가) 로 active-passive설정된 경우peering_mode, HAProxy는 다른 Contrail 서비스와 동일한 포트에 추가 리스너를 생성합니다. 이로 인해 포트 충돌이 발생합니다.

      Keepalived 매력에는 옵션이 필요하지 to 않습니다.

    2. 외부 트래픽에서 HAProxy를 사용할 수 있도록 설정합니다.
      참고:

      외부 트래픽에서 HAProxy를 사용할 수 있도록 설정하는 경우 6단계를 수행하지 마십시오.

    3. HAProxy 및 Keepalived 관계를 추가합니다.
    4. VIP로 contrail-controller 서비스를 구성합니다.
  9. 다른 필요한 관계를 추가합니다.

Juju 참 옵션

각 Contrail 참에는 특정 옵션 세트가 있습니다. 선택하는 옵션은 선택한 참 메뉴에 따라 달라집니다. 다음 표에는 선택할 수 있는 다양한 옵션이 나열되어 있습니다.

  • 참 메뉴에 대한 contrail-agent 옵션.

    표 1: contrail-agent 옵션

    옵션

    기본 옵션

    설명

    physical-interface

    vhost0을 설치할 인터페이스를 지정합니다. 인터페이스를 지정하지 않으면 vhost0이 기본 게이트웨이 인터페이스에 설치됩니다.

    vhost-gateway

    auto

    vhost0에 대한 게이트웨이를 지정합니다. IP 주소 또는 키워드(auto)를 입력하여 기존 가상호스트 경로를 기반으로 게이트웨이를 자동으로 설정할 수 있습니다.

    remove-juju-bridge

    true

    인터페이스에 vhost0을 직접 설치하려면 이 옵션을 활성화하여 LXD/LXC 및 KVM 워크로드를 배포하기 위해 생성된 모든 브리지를 제거합니다.

    dpdk

    false

    DPDK vRouter를 지정합니다.

    dpdk-driver

    uio_pci_generic

    물리적 인터페이스에 대한 DPDK 드라이버를 지정합니다.

    dpdk-hugepages

    70%

    DPDK vRouter 및 OpenStack 인스턴스용으로 예약된 대규모 페이지의 백분율을 지정합니다.

    dpdk-coremask

    1

    vRouter CPU 선호도 마스크를 지정하여 DPDK vRouter를 실행할 CPU를 결정합니다.

    dpdk-main-mempool-size

    기본 패킷 풀 크기를 지정합니다.

    dpdk-pmd-txd-size

    DPDK PMD Tx 설명자 크기를 지정합니다.

    dpdk-pmd-rxd-size

    DPDK PMD Rx 설명자 크기를 지정합니다.

    docker-registry

    opencontrailnightly

    docker-registry의 URL을 지정합니다.

    docker-registry-insecure

    false

    docker-registry를 구성해야 하는지 여부를 지정합니다.

    docker-user

    docker 레지스트리에 로그인합니다.

    docker-password

    docker-registry 암호를 지정합니다.

    image-tag

    latest

    docker 이미지 태그를 지정합니다.

    log-level

    SYS_NOTICE

    Contrail 서비스의 로그 수준을 지정합니다.

    옵션: SYS_EMERG, SYS_ALERT, SYS_CRIT, SYS_ERR, SYS_WARN, SYS_NOTICE, SYS_INFO, SYS_DEBUG

    http_proxy

    URL을 지정합니다.

    https_proxy

    URL을 지정합니다.

    no_proxy

    직접 액세스해야 하는 수신인 목록을 지정합니다.

  • 참 메뉴에 대한 contrail-analytics 옵션.

    표 2: contrail-analytics 옵션

    옵션

    기본 옵션

    설명

    control-network

    제어 네트워크의 IP 주소와 네트워크 마스크를 지정합니다.

    docker-registry

     

    docker-registry의 URL을 지정합니다.

    docker-registry-insecure

    false

    docker-registry를 구성해야 하는지 여부를 지정합니다.

    docker-user

    docker 레지스트리에 로그인합니다.

    docker-password

    docker-registry 암호를 지정합니다.

    image-tag

     

    docker 이미지 태그를 지정합니다.

    log-level

    SYS_NOTICE

    Contrail 서비스의 로그 수준을 지정합니다.

    옵션: SYS_EMERG, SYS_ALERT, SYS_CRIT, SYS_ERR, SYS_WARN, SYS_NOTICE, SYS_INFO, SYS_DEBUG

    http_proxy

    URL을 지정합니다.

    https_proxy

    URL을 지정합니다.

    no_proxy

    직접 액세스해야 하는 수신인 목록을 지정합니다.

  • 참 메뉴에 대한 contrail-analyticsdb 옵션.

    표 3: contrail-analyticsdb 옵션

    옵션

    기본 옵션

    설명

    control-network

    제어 네트워크의 IP 주소와 네트워크 마스크를 지정합니다.

    cassandra-minimum-diskgb

    256

    최소 디스크 요구 사항을 지정합니다.

    cassandra-jvm-extra-opts

    메모리 제한을 지정합니다.

    docker-registry

     

    docker-registry의 URL을 지정합니다.

    docker-registry-insecure

    false

    docker-registry를 구성해야 하는지 여부를 지정합니다.

    docker-user

    docker 레지스트리에 로그인합니다.

    docker-password

    docker-registry 암호를 지정합니다.

    image-tag

     

    docker 이미지 태그를 지정합니다.

    log-level

    SYS_NOTICE

    Contrail 서비스의 로그 수준을 지정합니다.

    옵션: SYS_EMERG, SYS_ALERT, SYS_CRIT, SYS_ERR, SYS_WARN, SYS_NOTICE, SYS_INFO, SYS_DEBUG

    http_proxy

    URL을 지정합니다.

    https_proxy

    URL을 지정합니다.

    no_proxy

    직접 액세스해야 하는 수신인 목록을 지정합니다.

  • 참 메뉴에 대한 contrail-controller 옵션.

    표 4: contrail-controller 옵션

    옵션

    기본 옵션

    설명

    control-network

    제어 네트워크의 IP 주소와 네트워크 마스크를 지정합니다.

    auth-mode

    rbac

    인증 모드를 지정합니다.

    옵션: rbsc, , cloud-admin. no-auth

    자세한 내용은 https://github.com/Juniper/contrail-controller/wiki/RBAC 를 참조하십시오.

    cassandra-minimum-diskgb

    20

    최소 디스크 요구 사항을 지정합니다.

    cassandra-jvm-extra-opts

    메모리 제한을 지정합니다.

    cloud-admin-role

    admin

    관리자 수준 액세스 권한이 있는 사용자의 keystone에서 역할 이름을 지정합니다.

    global-read-only-role

    읽기 전용 액세스 권한이 있는 사용자의 keystone에서 역할 이름을 지정합니다.

    vip

    Contrail API VIP를 클라이언트 측 소프트웨어 구성에 사용할지 여부를 지정합니다. 지정하지 않으면 첫 번째 Contrail API VIP 유닛의 프라이빗 IP가 사용됩니다.

    use-external-rabbitmq

    false

    참 메뉴가 내부 RabbitMQ 서버를 사용할 수 있도록 하려면 로 설정합니다 use-external-rabbitmq false.

    외부 AMQP 서버를 사용하려면 로 설정합니다use-external-rabbitmqtrue.

    참고:

    배포 후 플래그를 변경하지 마십시오.

    flow-export-rate

    0

    플로우가 생성되거나 삭제될 때 vRouter 에이전트가 Contrail Collector로 내보내는 플로우 레코드 수를 지정합니다.

    docker-registry

     

    docker-registry의 URL을 지정합니다.

    docker-registry-insecure

    false

    docker-registry를 구성해야 하는지 여부를 지정합니다.

    docker-user

    docker 레지스트리에 로그인합니다.

    docker-password

    docker-registry 암호를 지정합니다.

    image-tag

     

    docker 이미지 태그를 지정합니다.

    log-level

    SYS_NOTICE

    Contrail 서비스의 로그 수준을 지정합니다.

    옵션: SYS_EMERG, SYS_ALERT, SYS_CRIT, SYS_ERR, SYS_WARN, SYS_NOTICE, SYS_INFO, SYS_DEBUG

    http_proxy

    URL을 지정합니다.

    https_proxy

    URL을 지정합니다.

    no_proxy

    직접 액세스해야 하는 수신인 목록을 지정합니다.

  • 참 메뉴에 대한 contrail-keystone-auth 옵션.

    표 5: contrail-keystone-auth 옵션

    옵션

    기본 옵션

    설명

    ssl_ca

    base64 인코딩 SSL CA 인증서를 Contrail keystone 클라이언트에 제공할지 여부를 지정합니다.

    참고:

    이 인증서는 개인 서명된 ssl_cert 및 ssl_key 사용하는 경우에 필요합니다.

  • 참 메뉴에 대한 contrail-openstack 옵션.

    표 6: contrail-controller 옵션

    옵션

    기본 옵션

    설명

    enable-metadata-server

    true

    메타데이터를 구성하고 nova가 가상 머신에 대한 로컬 인스턴스를 실행할 수 있도록 하려면 로 true 설정합니다enable-metadata-server.nova-api-metadata

    use-internal-endpoints

    false

    OpenStack에서 내부 엔드포인트를 사용하도록 서비스를 구성하려면 로 true 설정합니다use-internal-endpoints.

    heat-plugin-dirs

    /usr/lib64/heat,/usr /lib/heat/usr/lib/ python2.7/dist-packages/ vnc_api/gen/heat/ resources

    heat 플러그인 디렉토리를 지정합니다.

    docker-registry

     

    docker-registry의 URL을 지정합니다.

    docker-registry-insecure

    false

    docker-registry를 구성해야 하는지 여부를 지정합니다.

    docker-user

    docker 레지스트리에 로그인합니다.

    docker-password

    docker-registry 암호를 지정합니다.

    image-tag

     

    docker 이미지 태그를 지정합니다.

    log-level

    SYS_NOTICE

    Contrail 서비스의 로그 수준을 지정합니다.

    옵션: SYS_EMERG, SYS_ALERT, SYS_CRIT, SYS_ERR, SYS_WARN, SYS_NOTICE, SYS_INFO, SYS_DEBUG

    http_proxy

    URL을 지정합니다.

    https_proxy

    URL을 지정합니다.

    no_proxy

    직접 액세스해야 하는 수신인 목록을 지정합니다.