13.3. 예측 가능한 IP 할당

결과 환경을 추가로 제어하기 위해 director에서 각 네트워크에서 특정 IP 주소를 사용하여 오버클라우드 노드를 할당할 수 있습니다.

절차

  1. 환경 파일을 생성하여 예측 가능한 IP 주소를 정의합니다.

    $ touch ~/templates/predictive_ips.yaml
  2. ~/templates/predictive _ips.yaml 파일에서 parameter_ defaults 섹션을 생성하고 다음 구문을 사용하여 각 네트워크의 각 노드에 대한 예측 가능한 IP 주소 지정을 정의합니다.

    parameter_defaults:
      <role_name>IPs:
        <network>:
        - <IP_address>
        <network>:
        - <IP_address>

    각 노드 역할에는 고유한 매개 변수가 있습니다. <role_name>IP를 관련 매개변수로 바꿉니다.

    • 컨트롤러 노드의 ControllerIP.
    • 컴퓨팅 노드 의 ComputeIP.
    • Ceph Storage 노드의 CephStorageIP.
    • 블록 스토리지 노드 의 BlockStorageIP.
    • 오브젝트 스토리지 노드의 SwiftStorageIPs.
    • [ROLE]사용자 정의 역할을 위한 IP입니다. [ROLE] 을 역할 이름으로 바꿉니다.

      각 매개 변수는 네트워크 이름에서 주소 목록에 대한 맵입니다. 각 네트워크 유형에는 해당 네트워크에 노드가 있을 만큼의 주소가 있어야 합니다. director에서 주소를 순서대로 할당합니다. 각 유형의 첫 번째 노드는 각 목록에서 첫 번째 주소를 수신하고 두 번째 노드는 각 목록에서 두 번째 주소를 수신합니다.

      예를 들어 예측 가능한 IP 주소가 있는 오버클라우드에 세 개의 Ceph Storage 노드를 배포하려면 다음 예제 구문을 사용합니다.

      parameter_defaults:
        CephStorageIPs:
          storage:
          - 172.16.1.100
          - 172.16.1.101
          - 172.16.1.102
          storage_mgmt:
          - 172.16.3.100
          - 172.16.3.101
          - 172.16.3.102

      첫 번째 Ceph Storage 노드는 두 개의 주소를 수신합니다. 172.16.1.100 및 172.16.3.100. 두 번째는 172.16.1.101 및 172.16.3.101을 수신하고 세 번째는 172.16.1.102 및 172.16.3.102를 수신합니다. 동일한 패턴은 다른 노드 유형에 적용됩니다.

      컨트롤 플레인에서 예측 가능한 IP 주소를 구성하려면 /usr/share/openstack-tripleo-heat-templates/environments/ips-from-pool-ctlplane.yaml 파일을 stack 사용자의 templates 디렉터리에 복사합니다.

      $ cp /usr/share/openstack-tripleo-heat-templates/environments/ips-from-pool-ctlplane.yaml ~/templates/.

      다음 매개 변수 예제를 사용하여 새 ips-from-pool-ctlplane.yaml 파일을 구성합니다. 컨트롤 플레인 IP 주소 선언을 다른 네트워크에 대한 IP 주소 선언과 결합하고 한 파일만 사용하여 모든 역할에 있는 모든 네트워크에 대한 IP 주소를 선언할 수 있습니다. 스파인/리프형에 대해 예측 가능한 IP 주소를 사용할 수도 있습니다. 각 노드에는 올바른 서브넷의 IP 주소가 있어야 합니다.

      parameter_defaults:
        ControllerIPs:
          ctlplane:
          - 192.168.24.10
          - 192.168.24.11
          - 192.168.24.12
          internal_api:
          - 172.16.1.20
          - 172.16.1.21
          - 172.16.1.22
          external:
          - 10.0.0.40
          - 10.0.0.57
          - 10.0.0.104
        ComputeLeaf1IPs:
          ctlplane:
          - 192.168.25.100
          - 192.168.25.101
          internal_api:
          - 172.16.2.100
          - 172.16.2.101
        ComputeLeaf2IPs:
          ctlplane:
          - 192.168.26.100
          - 192.168.26.101
          internal_api:
          - 172.16.3.100
          - 172.16.3.101

      선택한 IP 주소가 네트워크 환경 파일에 정의된 각 네트워크에 대해 할당 풀 외부에 속하는지 확인합니다. 예를 들어 internal_api 할당이 자동으로 선택된 IP와 충돌하지 않도록 InternalApiAllocationPools 범위를 벗어나는지 확인합니다. 또한 IP 할당이 VIP 구성과 충돌하지 않는지 확인합니다(예: 13.4절. “예측 가능한 가상 IP 할당”참조) 또는 외부 로드 밸런싱( 21.4절. “외부 로드 밸런싱 구성”참조).

      중요

      Overcloud 노드가 삭제되면 IP 목록의 항목을 제거하지 마십시오. IP 목록은 노드를 삭제해도 변경되지 않는 기본 heat 인덱스를 기반으로 합니다. 목록에 지정된 항목이 더 이상 사용되지 않음을 나타내려면 IP 값을 DELETED 또는 UNUSED 와 같은 값으로 바꿉니다. 항목은 변경 또는 추가만 IP 목록에서 제거해서는 안 됩니다.

  3. 배포 중에 이 구성을 적용하려면 openstack overcloud deploy 명령을 사용하여 predictive _ips.yaml 환경 파일을 포함합니다.

    중요

    네트워크 분리를 사용하는 경우 network-isolation .yaml 파일 뒤에 predictive_ips.yaml 파일을 포함합니다.

    $ openstack overcloud deploy --templates \
      -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
      -e ~/templates/predictive_ips.yaml \
      [OTHER OPTIONS]