33.4. MetalLB 주소 풀 구성


클러스터 관리자는 주소 풀을 추가, 수정, 삭제할 수 있습니다. MetalLB Operator는 주소 풀 사용자 정의 리소스를 사용하여 MetalLB에서 서비스에 할당할 수 있는 IP 주소를 설정합니다. 예제에 사용되는 네임스페이스는 네임스페이스가 metallb-system 이라고 가정합니다.

33.4.1. IPAddressPool 사용자 정의 리소스 정보

참고

OpenShift Container Platform 4.10의 " MetalLB를 사용한 "Load balancing with MetalLB"에 설명된 주소 풀 CRD(Custom Resource Definition) 및 API는 4.13에서 계속 사용할 수 있습니다. 그러나 계층 2 프로토콜 또는 BGP 프로토콜을 사용하여 IPAddressPool 에서 IP 주소를 알리는 것과 관련된 향상된 기능은 AddressPool CRD를 사용할 때 지원되지 않습니다.

IPAddressPool 사용자 정의 리소스의 필드는 다음 표에 설명되어 있습니다.

표 33.1. MetalLB IPAddressPool pool 사용자 정의 리소스
필드유형설명

metadata.name

string

주소 풀의 이름을 지정합니다. 서비스를 추가할 때 metallb.universe.tf/address-pool 주석에 이 풀 이름을 지정하여 특정 풀에서 IP 주소를 선택할 수 있습니다. 문서 전체에서 doc-example, silver, gold라는 이름이 사용됩니다.

metadata.namespace

string

주소 풀의 네임스페이스를 지정합니다. MetalLB Operator에서 사용하는 동일한 네임스페이스를 지정합니다.

metadata.label

string

선택 사항: IPAddressPool 에 할당된 키 값 쌍을 지정합니다. 이는 IPAddressPool 을 광고와 연결하기 위해 BGPAdvertisementL2Advertisement CRD의 ipAddressPoolSelectors 에서 참조할 수 있습니다.

spec.addresses

string

MetalLB Operator의 IP 주소 목록을 서비스에 할당할 수 있도록 지정합니다. 단일 풀에 여러 범위를 지정할 수 있습니다. 모두 동일한 설정을 공유합니다. CIDR 표기법에서 각 범위를 지정하거나 하이픈으로 구분된 시작 및 끝 IP 주소로 지정합니다.

spec.autoAssign

boolean

선택 사항: MetalLB에서 이 풀에서 IP 주소를 자동으로 할당하는지 여부를 지정합니다. metallb.universe.tf/address-pool 주석을 사용하여 이 풀에서 IP 주소를 명시적으로 요청하려면 false 를 지정합니다. 기본값은 true입니다.

spec.avoidBuggyIPs

boolean

선택 사항: IP 주소가 .0 및 .255로 끝나는 경우 풀에서 할당되지 않도록 합니다. 기본값은 false입니다. 일부 이전 소비자 네트워크 장치는 .0 및 .255로 끝나는 IP 주소를 실수로 차단합니다.

spec.serviceAllocation 사양을 구성하여 IPAddressPool 의 IP 주소를 서비스 및 네임스페이스에 할당할 수 있습니다.

표 33.2. ScanSetting IPAddressPool 사용자 정의 리소스 spec.serviceAllocation 하위 필드
필드유형설명

priority

int

선택 사항: 둘 이상의 IP 주소 풀이 서비스 또는 네임스페이스와 일치하는 경우 IP 주소 풀 간 우선 순위를 정의합니다. 숫자가 작을수록 우선순위가 높습니다.

네임스페이스

배열(문자열)

선택 사항: IP 주소 풀의 IP 주소에 할당할 수 있는 네임스페이스 목록을 지정합니다.

namespaceSelectors

array (LabelSelector)

선택 사항: 목록 형식의 라벨 선택기를 사용하여 IP 주소 풀에서 IP 주소에 할당할 수 있는 네임스페이스 레이블을 지정합니다.

serviceSelectors

array (LabelSelector)

선택 사항: 목록 형식의 라벨 선택기를 사용하여 주소 풀에서 IP 주소에 할당할 수 있는 서비스 레이블을 지정합니다.

33.4.2. 주소 풀 구성

클러스터 관리자는 클러스터에 주소 풀을 추가하여 MetalLB가 부하 분산 서비스에 할당할 수 있는 IP 주소를 제어할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 로그인합니다.

절차

  1. 다음 예와 같은 콘텐츠를 사용하여 ipaddresspool.yaml 과 같은 파일을 만듭니다.

    apiVersion: metallb.io/v1beta1
    kind: IPAddressPool
    metadata:
      namespace: metallb-system
      name: doc-example
      labels: 1
        zone: east
    spec:
      addresses:
      - 203.0.113.1-203.0.113.10
      - 203.0.113.65-203.0.113.75
    1
    IPAddressPool 에 할당된 이 레이블은 BGPAdvertisement CRD의 ipAddressPoolSelectors 에서 참조하여 IPAddressPool 을 광고와 연결할 수 있습니다.
  2. IP 주소 풀에 대한 구성을 적용합니다.

    $ oc apply -f ipaddresspool.yaml

검증

  • 주소 풀을 확인합니다.

    $ oc describe -n metallb-system IPAddressPool doc-example

    출력 예

    Name:         doc-example
    Namespace:    metallb-system
    Labels:       zone=east
    Annotations:  <none>
    API Version:  metallb.io/v1beta1
    Kind:         IPAddressPool
    Metadata:
      ...
    Spec:
      Addresses:
        203.0.113.1-203.0.113.10
        203.0.113.65-203.0.113.75
      Auto Assign:  true
    Events:         <none>

주소 풀 이름(예: doc-example ) 및 IP 주소 범위가 출력에 표시되는지 확인합니다.

33.4.3. 주소 풀 구성의 예

33.4.3.1. 예: IPv4 및 CIDR 범위

CIDR 표기법에서 IP 주소 범위를 지정할 수 있습니다. 하이픈을 사용하는 표기법과 CIDR 표기법을 결합하여 하한 및 상한을 분리할 수 있습니다.

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: doc-example-cidr
  namespace: metallb-system
spec:
  addresses:
  - 192.168.100.0/24
  - 192.168.200.0/24
  - 192.168.255.1-192.168.255.5

33.4.3.2. 예: IP 주소

MetalLB가 풀에서 IP 주소를 자동으로 할당하지 못하도록 autoAssign 필드를 false 로 설정할 수 있습니다. 서비스를 추가할 때 풀에서 특정 IP 주소를 요청하거나 주석에 풀 이름을 지정하여 풀에서 IP 주소를 요청할 수 있습니다.

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: doc-example-reserved
  namespace: metallb-system
spec:
  addresses:
  - 10.0.100.0/28
  autoAssign: false

33.4.3.3. 예: IPv4 및 IPv6 주소

IPv4 및 IPv6을 사용하는 주소 풀을 추가할 수 있습니다. 여러 IPv4 예제와 마찬가지로 address 목록에 여러 범위를 지정할 수 있습니다.

서비스에 단일 IPv4 주소, 단일 IPv6 주소 또는 둘 다 서비스를 추가하는 방법에 따라 결정됩니다. spec.ipFamiliesspec.ipFamilyPolicy 필드는 서비스에 IP 주소를 할당하는 방법을 제어합니다.

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: doc-example-combined
  namespace: metallb-system
spec:
  addresses:
  - 10.0.100.0/28
  - 2002:2:2::1-2002:2:2::100

33.4.3.4. 예: 서비스 또는 네임스페이스에 IP 주소 풀 할당

IPAddressPool 의 IP 주소를 지정한 서비스 및 네임스페이스에 할당할 수 있습니다.

서비스 또는 네임스페이스를 두 개 이상의 IP 주소 풀에 할당하는 경우 CloudEvent는 우선순위가 높은 IP 주소 풀에서 사용 가능한 IP 주소를 사용합니다. 우선 순위가 높은 할당된 IP 주소 풀에서 IP 주소를 사용할 수 없는 경우 CloudEvent는 우선 순위가 높은 IP 주소 풀에서 사용 가능한 IP 주소를 사용합니다.

참고

matchLabels 라벨 선택기, matchExpressions 라벨 선택기 또는 둘 다 namespaceSelectorsserviceSelectors 사양에 사용할 수 있습니다. 이 예제에서는 각 사양에 대해 하나의 라벨 선택기를 보여줍니다.

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: doc-example-service-allocation
  namespace: metallb-system
spec:
  addresses:
    - 192.168.20.0/24
  serviceAllocation:
    priority: 50 1
    namespaces: 2
      - namespace-a
      - namespace-b
    namespaceSelectors: 3
      - matchLabels:
          zone: east
    serviceSelectors: 4
      - matchExpressions:
        - key: security
          operator: In
          values:
          - S1
1
주소 풀에 우선 순위를 할당합니다. 숫자가 작을수록 우선순위가 높습니다.
2
목록 형식의 IP 주소 풀에 하나 이상의 네임스페이스를 할당합니다.
3
목록 형식의 라벨 선택기를 사용하여 IP 주소 풀에 하나 이상의 네임스페이스 레이블을 할당합니다.
4
목록 형식의 라벨 선택기를 사용하여 IP 주소 풀에 하나 이상의 서비스 레이블을 할당합니다.

33.4.4. 다음 단계

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.