Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

OpenStack 및 Kolla Ansible과 함께 Contrail 설치

참고:

대부분의 Contrail Networking 구축에서 Contrail Command를 사용하여 기존 Contrail 클러스터에 컴퓨팅 노드를 추가하는 것이 좋습니다. Contrail Command를 사용하여 기존 Contrail 클러스터에 새 컴퓨팅 노드 추가를 참조하십시오.

이 문서의 절차는 Contrail Command GUI를 사용하지 않는 환경에서 상당한 YAML 파일 전문 지식을 갖춘 네트워크 관리자만 수행해야 합니다.

이 주제의 목표는 Kolla Ansible 플레이북 contrail-kolla-ansible을 사용하여 OpenStack과 함께 Contrail Networking을 설치하는 것입니다.

Kolla는 OpenStack 서비스용 컨테이너 이미지를 빌드하는 도구를 제공하는 OpenStack 프로젝트입니다. Kolla Ansible은 Kolla 이미지를 배포하기 위한 Ansible 플레이북을 제공합니다.

플레이북은 contrail-kolla-ansiblecontrail-ansible-deployer 함께 작동하여 OpenStack 및 Contrail Networking 컨테이너를 설치합니다.

Contrail Command를 사용하여 Contrail 클러스터를 구축하려면 Contrail Command 및 instances.yml을 사용하여 Contrail Cluster 설치를 참조하십시오.

절차에 따라 다음을 사용하여 contrail-kolla-ansible Kolla 컨테이너를 배포하고 다음을 사용하여 contrail-ansible-deployerContrail Networking 컨테이너를 배포합니다.

기본 호스트 설정

CentOS 및 커널 버전을 업데이트합니다. 지원되는 플랫폼 목록은 https://www.juniper.net/documentation/en_US/release-independent/contrail/topics/reference/contrail-supported-platforms.pdf 를 참조하십시오.

vRouter는 호스트 커널과 종속성 이 있습니다.

기본 호스트를 설정하려면 다음을 수행합니다.

  1. Contrail Downloads(Contrail 다운로드) 페이지에서 Ansible Deployer 설치 프로그램 패키지를 다운로드합니다.

  2. Ansible을 설치합니다.

    yum -y install epel-release

    yum -y install git ansible-2.7.10

  3. python-pip를 설치합니다.

    yum install -y python-pip

  4. 다음 명령을 실행합니다.

    yum -y remove PyYAML python-requests

    pip install PyYAML requests

  5. tgz 파일의 압축을 풉니다.

    - tar xvf contrail-ansible-deployer-19<xx>.<NN>.tgz

    instances.yaml은contrail-ansible-deployer/config/에 있습니다.

  6. 다음 지침에 따라 instances.yaml 파일에서 Contrail 및 Kolla 매개 변수를 구성합니다.

    • 프로바이더 구성(provider_config) 섹션은 Contrail 클러스터가 호스팅될 클라우드 프로바이더를 나타내며, 프로바이더와 관련된 모든 매개 변수를 포함합니다. 베어메탈 서버의 경우 공급자는 bms.

    • 이 섹션은 kolla_globals OpenStack 서비스를 참조합니다. 가능한 kolla_globals모든 에 대한 자세한 내용은 https://github.com/Juniper/contrail-kolla-ansible/.../globals.yml 를 참조하십시오.

    • 추가 Kolla 구성(contrail-kolla-ansible)은 로 contrail_additions가능합니다. Kolla에 가능한 contrail_additions 모든 것에 대한 자세한 내용은 https://github.com/Juniper/contrail-kolla-ansible/.../all.yml 를 참조하십시오.

    • contrail_configuration 섹션에는 Contrail 서비스에 대한 매개 변수가 포함되어 있습니다.

      • CONTAINER_REGISTRY 은(는) Contrail 컨테이너를 가져올 레지스트리를 지정합니다. 자체 컨테이너를 빌드하는 경우 로컬 Docker 레지스트리로 설정할 수 있습니다. 레지스트리를 지정하지 않으면 Docker 허브에서 컨테이너를 끌어오려고 시도합니다.

        사용자 지정 레지스트리가 지정된 경우 아래에 kolla_globals contrail_docker_registry동일한 레지스트리도 지정합니다.

      • CONTRAIL_VERSION을 지정하지 않으면 기본적으로 "latest" 태그가 사용됩니다.

      • 에 사용할 수 있는 contrail_configuration모든 매개 변수에 대한 자세한 내용은 https://github.com/tungstenfabric/tf-container-builder/blob/master/containers/base/common.sh 단원을 참조하십시오.

      • instances.yaml 파일에서 을roles(를) 지정해야 합니다. 그렇지 않으면 설치 절차가 실패합니다.

      • 호스트마다 호스트별 값이 있는 경우, 예를 들어 "network_interface"에 사용되는 인터페이스 이름이 클러스터의 서버에서 다른 경우 멀티 노드 OpenStack HA 및 Contrail(멀티 인터페이스)에 대한 구성 샘플의 구성 예제를 사용합니다.

      • 많은 매개변수가 자동으로 정상적인 기본값(첫 번째 구성의 작동 방식)으로 파생됩니다. 필요한 경우 파생된 값을 재정의할 변수를 명시적으로 지정할 수 있습니다. 코드를 검토하여 파생 논리를 확인합니다.

    예: instances.yaml

    이 예는 단일 노드, 단일 인터페이스, 올인원 클러스터에 대한 최소한의 구성입니다.

    예: instances.yaml

    이 예는 단일 노드, 단일 인터페이스, 올인원 클러스터에 대한 보다 정교한 구성입니다.

  7. 폴더에서 다음 명령을 contrail-ansible-deployer 실행합니다.

    • ansible-playbook -e orchestrator=openstack -i inventory/ playbooks/configure_instances.yml

    • ansible-playbook -i inventory/ playbooks/install_openstack.yml

    • ansible-playbook -e orchestrator=openstack -i inventory/ playbooks/install_contrail.yml

  8. 웹 브라우저를 열고 https://contrail-server-ip:8143 입력하여 Contrail 웹 UI에 액세스합니다.

    기본 로그인 사용자 이름은 admin입니다. 6단계에서 입력한 것과 동일한 암호를 사용합니다

멀티노드 OpenStack HA 및 Contrail을 위한 다중 인터페이스 구성 샘플

이것은 고가용성 OpenStack 및 Contrail Networking의 다중 인터페이스, 다중 노드 구축을 위한 구성 샘플입니다. 이 샘플을 사용하여 시스템과 관련된 매개 변수를 구성할 수 있습니다.

자세한 내용이나 최신 업데이트는 github 항목 멀티 노드 OpenStack HA 및 Contrail(멀티 인터페이스)에 대한 구성 샘플을 참조하십시오.

구성 샘플 - 다중 인터페이스

멀티노드 OpenStack HA 및 Contrail을 위한 단일 인터페이스 구성 샘플

이것은 고가용성 OpenStack 및 Contrail Networking의 다중 노드, 단일 인터페이스 구축을 위한 구성 샘플입니다. 이 샘플을 사용하여 시스템과 관련된 매개 변수를 구성할 수 있습니다.

자세한 내용이나 최신 업데이트는 github 항목 멀티 노드 OpenStack HA 및 Contrail(단일 인터페이스)에 대한 구성 샘플을 참조하십시오.

구성 샘플—단일 인터페이스

참고:

contrail_container_tag 을 Contrail 릴리스에 적합한 값으로 바꿉니다<contrail_version>. 각 contrail_container_tag 값은 Contrail Registry 19XX에 대한 README 액세스에 나열되어 있습니다.

자주 묻는 질문

이 섹션에서는 몇 가지 일반적인 오류 상황을 제공하고 오류 조건을 해결하는 방법에 대한 지침을 제공합니다.

호스트별 매개 변수 사용

호스트별 매개 변수를 지정해야 하는 상황(예: 클러스터의 다른 서버에 대해 인터페이스 이름이 다른 경우)이 발생할 수 있습니다. 이 경우 각 역할에서 개별 이름을 지정할 수 있으며 보다 구체적인 설정이 우선합니다.

예를 들어, "openstack" 역할 아래에 "network_interface" 설정이 없는 경우(예: "bms1") 전역 변수에서 해당 설정을 가져옵니다.

확장된 예제는 멀티 노드 OpenStack HA 및 Contrail 구성 샘플에서 확인할 수 있습니다.

개인 레지스트리의 컨테이너에 액세스할 수 없음

  1. CONTAINER_REGISTRY라는 개인 레지스트리에서 가져온 컨테이너에 액세스할 수 없는 상황이 있을 수 있습니다.

  2. 이 문제를 해결하려면 REGISTRY_PRIVATE_INSECURE가 True로 설정되어 있는지 확인합니다.

오류: vrouter 커널 모듈을 삽입하지 못했습니다.

  1. vrouter 컨테이너가 오류 상태이고 Docker 로그에 오류가 표시된 상태에서 vrouter 모듈이 컴퓨팅 노드에 설치되지 않는 상황이 발생할 수 있습니다.

  2. 이 릴리스에서 vrouter 모듈을 사용하려면 호스트 커널 버전이 3.10.0-957.11.6.el7.x86_64이어야 합니다. 이 커널 버전을 가져오려면 provision을 실행하기 전에 대상 노드에 커널 버전을 설치합니다.

vrouter가 OpenStack을 지정하지 않은 경우 치명적인 오류

  1. nova-compute 없이 vrouter를 프로비저닝해야 하는 경우 치명적인 오류가 발생할 수 있습니다.

  2. nova-compute와 함께 vrouter를 프로비저닝해야 하는 사용 사례가 있습니다. 따라서 "vrouter" 역할이 지정될 때 "openstack_compute"가 자동으로 유추되지 않습니다. 이 문제를 해결하려면 "vrouter"와 함께 "openstack_compute" 역할을 명시적으로 명시해야 합니다.

    이 사용 사례에 대한 자세한 내용은 버그 #1756133을 참조하세요.

단일 OpenStack 클러스터에서 HAProxy 및 가상 IP의 필요성

기본적으로 모든 OpenStack 서비스는 config/instances.yaml의 섹션 아래에 있는 변수에서 kolla_internal_vip_address/network_interface 제공하는 IP 인터페이스에서 수신 대기합니다kolla_globals. 대부분의 경우 이것은 ctrl-data 네트워크에 해당하며, 이는 Horizon도 이제 ctrl-data 네트워크에서만 실행됨을 의미합니다. Kolla가 관리 네트워크에서 Horizon에 대한 액세스를 제공하는 유일한 방법은 HAProxy 및 keepalived를 사용하는 것입니다. keepalived를 활성화하려면 VRRP에 대한 가상 IP가 필요하며 인터페이스 IP가 될 수 없습니다. Kolla 구성 매개변수를 사용할 때 keepalived를 활성화하지 않고는 HAProxy를 활성화할 수 있는 방법이 없습니다. 따라서 관리()와 ctrl-data-network(kolla_external_vip_addresskolla_internal_vip_address)에 각각 하나씩 두 개의 가상 IP 주소를 제공해야 합니다. 이 구성을 사용하면 Horizon은 를 통해 관리 네트워크에서 액세스할 수 있습니다kolla_external_vip_address.

kolla_toolbox 컨테이너를 사용하여 OpenStack 명령 실행

OpenStack 컨테이너가 실행 중인 기본 호스트의 디렉터리 /etc/kolla/kolla-toolbox 가 마운트되고 컨테이너 내부에서와 같이 /var/lib/kolla/config_files 액세스할 수 있습니다 kolla_toolbox . OpenStack 명령을 실행할 때 다른 파일이 필요한 경우(예: 명령에 openstack image create 이미지 파일이 필요한 경우) 관련 파일을 /etc/kolla/kolla-toolbox 기본 호스트의 디렉터리에 복사하여 컨테이너 내에서 사용할 수 있습니다.

다음 예제에서는 이러한 방식으로 OpenStack 명령을 실행하는 방법을 보여줍니다.