10장. 여러 오버클라우드 배포

중요

이 기능은 이번 릴리스에서 기술 프리뷰로 제공되므로 Red Hat에서 완전히 지원되지 않습니다. 테스트 용도로만 사용해야 하며 프로덕션 환경에 배포해서는 안 됩니다. 기술 프리뷰 기능에 대한 자세한 내용은 적용 범위 상세 정보를 참조하십시오.

단일 언더클라우드 노드를 사용하여 여러 오버클라우드를 배포 및 관리할 수 있습니다. 각 오버클라우드는 스택 리소스를 공유하지 않는 고유한 heat 스택입니다. 이 기능은 언더클라우드와 오버클라우드의 비율이 1:1이라서 생성되는 오버헤드를 관리할 수 없는 환경에서 유용할 수 있습니다. 예를 들어 Edge, 다중 사이트, 다중 제품 환경 등이 있습니다.

다중 오버클라우드 시나리오의 오버클라우드 환경은 완전히 분리되어 있으며, source 명령을 사용하여 환경 간에 전환할 수 있습니다. 베어 메탈 프로비저닝에 Ironic을 사용하는 경우 모든 오버클라우드가 동일한 프로비저닝 네트워크에 있어야 합니다. 동일한 프로비저닝 네트워크를 사용할 수 없는 경우 배포된 서버 방법을 사용하여 라우팅된 네트워크로 여러 오버클라우드를 배포할 수 있습니다. 이 시나리오에서는 HostnameMap 매개변수의 값이 각 오버클라우드의 스택 이름과 일치하는지 확인해야 합니다.

다음 워크플로우를 사용하여 기본 프로세스를 파악합니다.

언더클라우드 배포
언더클라우드를 정상적으로 배포합니다. 자세한 내용은 I 부. director 설치 및 구성을 참조하십시오.
첫 번째 오버클라우드 배포
첫 번째 오버클라우드를 정상적으로 배포합니다. 자세한 내용은 II 부. 기본적인 오버클라우드 배포를 참조하십시오.
추가 오버클라우드 배포
새 오버클라우드에 사용할 새 환경 파일 세트를 생성합니다. 배포 명령을 실행하고 새 구성 파일 및 새 stack 이름으로 코어 heat 템플릿을 지정합니다.

10.1. 추가 오버클라우드 배포

이 예제에서 overcloud-one은 기존 오버클라우드입니다. 새로운 오버클라우드인 overcloud-two를 배포하려면 다음 단계를 완료합니다.

사전 요구 사항

추가 오버클라우드 배포를 시작하기 전에 환경에 다음 구성이 포함되어 있는지 확인합니다.

  • 성공적으로 전개된 언더클라우드 및 오버클라우드 배포
  • 추가 오버클라우드에 사용 가능한 노드
  • 결과 스택에서 각 오버클라우드에 고유한 네트워크가 있도록 추가 오버클라우드에 사용할 사용자 지정 네트워크

절차

  1. 배포하려는 추가 오버클라우드에 사용할 새 디렉터리를 생성합니다.

    $ mkdir ~/overcloud-two
  2. 새 디렉터리에서 추가 오버클라우드의 요구 사항에 맞는 새 환경 파일을 생성하고 기존 오버클라우드에서 관련 환경 파일을 복사합니다.

    $ cp network-data.yaml ~/overcloud-two/network-data.yaml
    $ cp network-environment.yaml ~/overcloud-two/network-environment.yaml
  3. 새 오버클라우드의 사양에 따라 환경 파일을 수정합니다. 예를 들어 기존 오버클라우드의 이름은 overcloud-one이고 network-data.yaml 환경 파일에 정의된 VLAN을 사용합니다.

    - name: InternalApi
      name_lower: internal_api_cloud_1
      service_net_map_replace: internal_api
      vip: true
      vlan: 20
      ip_subnet: '172.17.0.0/24'
      allocation_pools: [{'start': '172.17.0.4', 'end': '172.17.0.250'}]
      ipv6_subnet: 'fd00:fd00:fd00:2000::/64'
      ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}]
      mtu: 1500
    - name: Storage
      ...

    새 오버클라우드의 이름은 overcloud-two이고 다른 VLAN을 사용합니다. ~/overcloud-two/network-data.yaml 환경 파일을 편집하고 각 서브넷의 새 VLAN ID를 포함합니다. 또한 고유한 name_lower 값을 정의하고 service_net_map_replace 속성을 교체하려는 네트워크 이름으로 설정해야 합니다.

    - name: InternalApi
      name_lower: internal_api_cloud_2
      service_net_map_replace: internal_api
      vip: true
      vlan: 21
      ip_subnet: '172.21.0.0/24'
      allocation_pools: [{'start': '172.21.0.4', 'end': '172.21.0.250'}]
      ipv6_subnet: 'fd00:fd00:fd00:2001::/64'
      ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2001::10', 'end': 'fd00:fd00:fd00:2001:ffff:ffff:ffff:fffe'}]
      mtu: 1500
    - name: Storage
      ...
  4. ~/overcloud-two/network-environment.yaml 파일에서 다음 매개변수를 수정합니다.

    • overcloud-two에 고유한 외부 네트워크가 설정되도록 ExternalNetValueSpecs 매개변수의 {'provider:physical_network'} 속성에 특정 값을 입력하고 'provider:network_type' 속성으로 네트워크 유형을 정의합니다.
    • 오버클라우드에 외부 액세스 권한이 있도록 ExternalInterfaceDefaultRoute 매개변수를 외부 네트워크의 게이트웨이 IP 주소로 설정합니다.
    • 오버클라우드가 DNS 서버에 연결할 수 있도록 DnsServers 매개변수를 DNS 서버의 IP 주소로 설정합니다.

      parameter_defaults:
        ...
        ExternalNetValueSpecs: {'provider:physical_network': 'external_2', 'provider:network_type': 'flat'}
        ExternalInterfaceDefaultRoute: 10.0.10.1
        DnsServers:
          - 10.0.10.2
        ...
  5. openstack overcloud deploy 명령을 실행합니다. --templates 옵션으로 코어 heat 템플릿 컬렉션을 지정하고 --stack 옵션으로 새 stack 이름을 지정한 후 ~/overcloud-two 디렉터리의 새 환경 파일을 모두 지정합니다.

    $ openstack overcloud deploy --templates \
        --stack overcloud-two \
        ...
        -n ~/overcloud-two/network-data.yaml \
        -e ~/overcloud-two/network-environment.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml \
        ...

각 오버클라우드에 고유한 인증 정보 파일이 설정됩니다. 이 예제에서 배포 프로세스는 overcloud-oneovercloud-onercovercloud-twoovercloud-tworc를 생성합니다. 오버클라우드와 상호 작용하려면 적절한 인증 정보 파일을 소싱해야 합니다. 예를 들어 첫 번째 오버클라우드의 인증 정보를 소싱하려면 다음 명령을 실행합니다.

$ source overcloud-onerc