29.5. IP 주소 풀 광고 정보
계층 2 프로토콜, BGP 프로토콜 또는 둘 다로 IP 주소가 광고되도록 MetalLB를 구성할 수 있습니다. 계층 2의 경우 MetalLB는 내결함성 외부 IP 주소를 제공합니다. BGP를 사용하면 MetalLB가 외부 IP 주소 및 로드 밸런싱을 위한 내결함성을 제공합니다.
MetalLB는 동일한 IP 주소 세트에 대해 L2 및 BGP를 사용한 광고를 지원합니다.
MetalLB는 주소 풀을 특정 BGP 피어에 효과적으로 네트워크 노드의 하위 집합에 할당할 수 있는 유연성을 제공합니다. 이렇게 하면 더 복잡한 구성을 사용할 수 있습니다(예: 노드 격리 또는 네트워크 분할).
29.5.1. BGPAdvertisement 사용자 정의 리소스 정보
BGPAdvertisements
오브젝트의 필드는 다음 표에 정의되어 있습니다.
필드 | 유형 | 설명 |
---|---|---|
|
| BGP 광고의 이름을 지정합니다. |
|
| BGP 광고의 네임스페이스를 지정합니다. MetalLB Operator에서 사용하는 동일한 네임스페이스를 지정합니다. |
|
|
선택 사항: 32비트 CIDR 마스크에 포함할 비트 수를 지정합니다. 스피커가 BGP 피어에 알리는 경로를 집계하기 위해 마스크는 여러 서비스 IP 주소의 경로에 적용되며 스피커는 집계된 경로를 알립니다. 예를 들어 집계 길이가 |
|
|
선택 사항: 128비트 CIDR 마스크에 포함할 비트 수를 지정합니다. 예를 들어 집계 길이가 |
|
| 선택 사항: 하나 이상의 BGP 커뮤니티를 지정합니다. 각 커뮤니티는 콜론 문자로 구분된 두 개의 16비트 값으로 지정됩니다. 잘 알려진 커뮤니티는 16비트 값으로 지정해야 합니다.
|
|
| 선택 사항: 이 광고의 로컬 기본 설정을 지정합니다. 이 BGP 속성은 자동 시스템 내의 BGP 세션에 적용됩니다. |
|
|
선택 사항: 이 광고와 광고할 |
|
|
선택 사항: 이 광고와 함께 광고되는 |
|
|
선택 사항: 참고 이 기능이 지원하는 기능은 기술 프리뷰 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. |
|
| 선택 사항: 피어는 BGP 피어를 제한하여 선택한 풀의 IP를 로 알립니다. 비어있는 경우 로드 밸런서 IP는 구성된 모든 BGP 피어에 공개됩니다. |
29.5.2. BGP 광고를 사용하여 MetalLB 구성 및 기본 사용 사례
피어 BGP 라우터가 하나의 203.0.113.200/32
경로를 수신하고 MetalLB가 서비스에 할당하는 각 로드 밸런서 IP 주소에 대한 fc00:f853:ccd:e799::1/128
경로를 다음과 같이 구성하려면 다음과 같이 MetalLB를 구성합니다. localPref
및 커뮤니티
필드가 지정되지 않으므로 localPref
가 0으로 설정되고 BGP 커뮤니티없이 경로가 광고됩니다.
29.5.2.1. 예: BGP를 사용하여 기본 주소 풀 구성 알림
IPAddressPool
이 BGP 프로토콜을 통해 알리도록 다음과 같이 MetalLB를 구성합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 로그인합니다.
절차
IP 주소 풀을 만듭니다.
다음 예와 같은 콘텐츠를 사용하여
ipaddresspool.yaml
파일과 같은 파일을 생성합니다.apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: doc-example-bgp-basic spec: addresses: - 203.0.113.200/30 - fc00:f853:ccd:e799::/124
IP 주소 풀에 대한 구성을 적용합니다.
$ oc apply -f ipaddresspool.yaml
BGP 광고를 생성합니다.
다음 예와 같은 콘텐츠를 사용하여
bgpadvertisement.yaml
과 같은 파일을 만듭니다.apiVersion: metallb.io/v1beta1 kind: BGPAdvertisement metadata: name: bgpadvertisement-basic namespace: metallb-system spec: ipAddressPools: - doc-example-bgp-basic
설정을 적용합니다.
$ oc apply -f bgpadvertisement.yaml
29.5.3. BGP 광고를 사용하여 MetalLB 구성 및 고급 사용 사례
MetalLB가 203.0.113.200
및 203.0.113.203
사이의 범위에서 로드 밸런서 서비스에 IP 주소를 할당하고 fc00:f853:ccd:e799::0
및 fc00:f853:ccd:e00:f853:ccd:e799: ccd:e799::f .f .f
를 구성하도록 MetalLB를 구성합니다.
두 개의 BGP 알림을 설명하려면 MetalLB가 203.0.113.200
의 IP 주소를 서비스에 할당할 때 인스턴스를 고려하십시오. 그 IP 주소를 예로 들면, 스피커는 BGP 피어에 두 개의 경로를 알립니다.
-
203.0.113.200/32
,localPref
를100
으로 설정하고 커뮤니티가NO_ADVERTISE
커뮤니티의 숫자 값으로 설정합니다. 이 사양은 이 경로를 사용할 수 있는 피어 라우터에 표시되지만 이 경로에 대한 정보를 BGP 피어에 전파해서는 안 됩니다. -
203.0.113.200/30
. MetalLB에서 할당한 로드 밸런서 IP 주소를 단일 경로로 집계합니다. MetalLB에서는 커뮤니티 속성이8000:800
으로 설정된 BGP 피어에 집계된 경로를 알립니다. BGP 피어는203.0.113.200/30
경로를 다른 BGP 피어에 전파합니다. 트래픽이 스피커가 있는 노드로 라우팅되면203.0.113.200/32
경로는 트래픽을 클러스터로 전달하고 서비스와 관련된 Pod로 이동합니다.
더 많은 서비스를 추가하면 MetalLB가 풀에서 더 많은 로드 밸런서 IP 주소를 할당하므로 피어 라우터는 각 서비스에 대해 하나의 로컬 경로, 203.0.113.20x/32
및 203.0.113.200/30
집계 경로를 수신합니다. 추가하는 각 서비스는 /30
경로를 생성하지만 MetalLB는 피어 라우터와 통신하기 전에 경로를 하나의 BGP 광고로 분할합니다.
29.5.3.1. 예: BGP를 사용하여 고급 주소 풀 구성 알림
IPAddressPool
이 BGP 프로토콜을 통해 알리도록 다음과 같이 MetalLB를 구성합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 로그인합니다.
절차
IP 주소 풀을 만듭니다.
다음 예와 같은 콘텐츠를 사용하여
ipaddresspool.yaml
파일과 같은 파일을 생성합니다.apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: doc-example-bgp-adv labels: zone: east spec: addresses: - 203.0.113.200/30 - fc00:f853:ccd:e799::/124 autoAssign: false
IP 주소 풀에 대한 구성을 적용합니다.
$ oc apply -f ipaddresspool.yaml
BGP 광고를 생성합니다.
다음 예제와 같은 콘텐츠를 사용하여
bgpadvertisement1.yaml
과 같은 파일을 만듭니다.apiVersion: metallb.io/v1beta1 kind: BGPAdvertisement metadata: name: bgpadvertisement-adv-1 namespace: metallb-system spec: ipAddressPools: - doc-example-bgp-adv communities: - 65535:65282 aggregationLength: 32 localPref: 100
설정을 적용합니다.
$ oc apply -f bgpadvertisement1.yaml
다음 예제와 같은 콘텐츠를 사용하여
bgpadvertisement2.yaml
과 같은 파일을 만듭니다.apiVersion: metallb.io/v1beta1 kind: BGPAdvertisement metadata: name: bgpadvertisement-adv-2 namespace: metallb-system spec: ipAddressPools: - doc-example-bgp-adv communities: - 8000:800 aggregationLength: 30 aggregationLengthV6: 124
설정을 적용합니다.
$ oc apply -f bgpadvertisement2.yaml
29.5.4. L2Advertisement 사용자 정의 리소스 정보
l2Advertisements
오브젝트의 필드는 다음 표에 정의되어 있습니다.
필드 | 유형 | 설명 |
---|---|---|
|
| L2 광고의 이름을 지정합니다. |
|
| L2 광고의 네임스페이스를 지정합니다. MetalLB Operator에서 사용하는 동일한 네임스페이스를 지정합니다. |
|
|
선택 사항: 이 광고와 광고할 |
|
|
선택 사항: 이 광고와 함께 광고되는 |
|
|
선택 사항: 중요 다음 홉으로 노드 제한은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오. |
29.5.5. L2 알림을 사용하여 MetalLB 구성
IPAddressPool
이 L2 프로토콜을 통해 알리도록 다음과 같이 MetalLB를 구성합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 로그인합니다.
절차
IP 주소 풀을 만듭니다.
다음 예와 같은 콘텐츠를 사용하여
ipaddresspool.yaml
파일과 같은 파일을 생성합니다.apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: doc-example-l2 spec: addresses: - 4.4.4.0/24 autoAssign: false
IP 주소 풀에 대한 구성을 적용합니다.
$ oc apply -f ipaddresspool.yaml
L2 광고 생성.
다음 예와 같은 콘텐츠를 사용하여
l2advertisement.yaml
과 같은 파일을 생성합니다.apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: l2advertisement namespace: metallb-system spec: ipAddressPools: - doc-example-l2
설정을 적용합니다.
$ oc apply -f l2advertisement.yaml
29.5.6. L2 알림 및 라벨을 사용하여 MetalLB 구성
BGPAdvertisement
및 L2Advertisement
사용자 정의 리소스 정의의 ipAddressPools
필드는 이름 자체 대신 IPAddressPool
에 할당된 레이블을 기반으로 IPAddressPool
을 광고에 연결하는 데 사용됩니다.
이 예에서는 ipAddressPoolSelectors
필드를 구성하여 L2 프로토콜을 사용하여 IPAddressPool
Pool가 알리도록 MetalLB를 구성하는 방법을 보여줍니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 로그인합니다.
절차
IP 주소 풀을 만듭니다.
다음 예와 같은 콘텐츠를 사용하여
ipaddresspool.yaml
파일과 같은 파일을 생성합니다.apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: doc-example-l2-label labels: zone: east spec: addresses: - 172.31.249.87/32
IP 주소 풀에 대한 구성을 적용합니다.
$ oc apply -f ipaddresspool.yaml
ipAddressPoolSelectors
를 사용하여 L2 광고의 IP를 생성합니다.다음 예와 같은 콘텐츠를 사용하여
l2advertisement.yaml
과 같은 파일을 생성합니다.apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: l2advertisement-label namespace: metallb-system spec: ipAddressPoolSelectors: - matchExpressions: - key: zone operator: In values: - east
설정을 적용합니다.
$ oc apply -f l2advertisement.yaml