26.3. MetalLB 주소 풀 구성
클러스터 관리자는 주소 풀을 추가, 수정, 삭제할 수 있습니다. MetalLB Operator는 주소 풀 사용자 정의 리소스를 사용하여 MetalLB에서 서비스에 할당할 수 있는 IP 주소를 설정합니다.
26.3.1. 주소 풀 사용자 정의 리소스 정보
주소 풀 사용자 지정 리소스의 필드는 다음 표에 설명되어 있습니다.
표 26.1. MetalLB 주소 풀 사용자 정의 리소스
필드 | 유형 | 설명 |
---|---|---|
|
|
주소 풀의 이름을 지정합니다. 서비스를 추가할 때 |
|
| 주소 풀의 네임스페이스를 지정합니다. MetalLB Operator에서 사용하는 동일한 네임스페이스를 지정합니다. |
|
|
로드 밸런서 IP 주소를 피어 노드에 발표하는 프로토콜을 지정합니다. |
|
|
선택 사항: MetalLB에서 이 풀에서 IP 주소를 자동으로 할당하는지 여부를 지정합니다. |
|
| 서비스에 할당할 MetalLB의 IP 주소 목록을 지정합니다. 단일 풀에서 여러 범위를 지정할 수 있습니다. CIDR 표기법에서 각 범위를 지정하거나 하이픈으로 구분된 시작 및 끝 IP 주소로 지정합니다. |
|
|
선택 사항: 기본적으로 BGP 모드는 할당된 각 로드 밸런서 IP 주소를 추가 BGP 속성 없이 구성된 피어에 알립니다. 피어 라우터는 각 서비스 IP 주소에 대해 하나의 |
bgpAdvertisements
오브젝트의 필드는 다음 표에 정의되어 있습니다.
표 26.2. BGP 알림 구성
필드 | 유형 | 설명 |
---|---|---|
|
|
선택 사항: 32비트 CIDR 마스크에 포함할 비트 수를 지정합니다. 발표자가 BGP 피어에 알리는 경로를 집계하기 위해 마스크는 여러 서비스 IP 주소의 경로에 적용되며, 스피커는 집계된 경로를 알립니다. 예를 들어 집계 길이가 |
|
|
선택 사항: 128비트 CIDR 마스크에 포함할 비트 수를 지정합니다. 예를 들어 집계 길이가 |
|
| 선택 사항: 하나 이상의 BGP 커뮤니티를 지정합니다. 각 커뮤니티는 콜론 문자로 구분된 두 개의 16비트 값으로 지정됩니다. 잘 알려진 커뮤니티는 16비트 값으로 지정해야 합니다.
|
|
| 선택 사항: 이 알림의 로컬 기본 설정을 지정합니다. 이 BGP 속성은 자동 시스템 내의 BGP 세션에 적용됩니다. |
26.3.2. 주소 풀 구성
클러스터 관리자는 클러스터에 주소 풀을 추가하여 MetalLB가 로드 밸런서 서비스에 할당할 수 있는 IP 주소를 제어할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 로그인합니다.
절차
다음 예와 같은 내용을 사용하여
addresspool.yaml
과 같은 파일을 생성합니다.apiVersion: metallb.io/v1alpha1 kind: AddressPool metadata: namespace: metallb-system name: doc-example spec: protocol: layer2 addresses: - 203.0.113.1-203.0.113.10 - 203.0.113.65-203.0.113.75
주소 풀에 대한 구성을 적용합니다.
$ oc apply -f addresspool.yaml
검증
주소 풀을 확인합니다.
$ oc describe -n metallb-system addresspool doc-example
출력 예
Name: doc-example Namespace: metallb-system Labels: <none> Annotations: <none> API Version: metallb.io/v1alpha1 Kind: AddressPool Metadata: ... Spec: Addresses: 203.0.113.1-203.0.113.10 203.0.113.65-203.0.113.75 Auto Assign: true Protocol: layer2 Events: <none>
주소 풀 이름(예: doc-example
) 및 IP 주소 범위가 출력에 표시되는지 확인합니다.
26.3.3. 주소 풀 구성의 예
26.3.3.1. 예: IPv4 및 CIDR 범위
CIDR 표기법에서 IP 주소 범위를 지정할 수 있습니다. 하이픈을 사용하는 표기법과 CIDR 표기법을 결합하여 하한 및 상한을 분리할 수 있습니다.
apiVersion: metallb.io/v1beta1 kind: AddressPool metadata: name: doc-example-cidr namespace: metallb-system spec: protocol: layer2 addresses: - 192.168.100.0/24 - 192.168.200.0/24 - 192.168.255.1-192.168.255.5
26.3.3.2. 예: IP 주소
MetalLB가 풀에서 IP 주소를 자동으로 할당하지 못하도록 autoAssign
필드를 false
로 설정할 수 있습니다. 서비스를 추가할 때 풀에서 특정 IP 주소를 요청하거나 주석에 풀 이름을 지정하여 풀에서 IP 주소를 요청할 수 있습니다.
apiVersion: metallb.io/v1beta1 kind: AddressPool metadata: name: doc-example-reserved namespace: metallb-system spec: protocol: layer2 addresses: - 10.0.100.0/28 autoAssign: false
26.3.3.3. 예: IPv4 및 IPv6 주소
IPv4 및 IPv6을 사용하는 주소 풀을 추가할 수 있습니다. 여러 IPv4 예제와 같이 주소
목록에 여러 범위를 지정할 수 있습니다.
서비스에 단일 IPv4 주소, 단일 IPv6 주소 또는 둘 다 서비스 추가 방법에 따라 결정됩니다. spec.ipFamilies
및 spec.ipFamilyPolicy
필드는 서비스에 IP 주소를 할당하는 방법을 제어합니다.
apiVersion: metallb.io/v1beta1 kind: AddressPool metadata: name: doc-example-combined namespace: metallb-system spec: protocol: layer2 addresses: - 10.0.100.0/28 - 2002:2:2::1-2002:2:2::100
26.3.3.4. 예: BGP 모드가 있는 단순 주소 풀
BGP 모드의 경우 프로토콜
필드를 bgp
로 설정해야 합니다. 기타 주소 풀 사용자 지정 리소스 필드(예: autoAssign
)는 BGP 모드에도 적용됩니다.
다음 예에서 피어 BGP 라우터는 MetalLB가 서비스에 할당하는 각 로드 밸런서 IP 주소에 대해 하나의 203.0.113.200/32
경로와 하나의 fc00:f853:ccd:e799::1/128
경로를 수신합니다. localPref
및 커뮤니티
필드는 지정되지 않기 때문에 localPref
에서 BGP 커뮤니티가 0으로 설정되고 BGP 커뮤니티가 없습니다.
apiVersion: metallb.io/v1beta1 kind: AddressPool metadata: name: doc-example-bgp namespace: metallb-system spec: protocol: bgp addresses: - 203.0.113.200/30 - fc00:f853:ccd:e799::/124
26.3.3.5. 예: 사용자 지정 광고의 BGP 모드
정교한 사용자 지정 알림을 지정할 수 있습니다.
apiVersion: metallb.io/v1beta1 kind: AddressPool metadata: name: doc-example-bgp-adv namespace: metallb-system spec: protocol: bgp addresses: - 203.0.113.200/30 - fc00:f853:ccd:e799::/124 bgpAdvertisements: - communities: - 65535:65282 aggregationLength: 32 localPref: 100 - communities: - 8000:800 aggregationLength: 30 aggregationLengthV6: 124
이전 예에서 MetalLB는 203.0.113.200
에서 203.0.113.203
사이의 범위의 로드 밸런서 서비스에 IP 주소를 할당하고 fc00:f853:ccd:e799::0
과 fc00:f853:ccd:f853:ccd:f853:ccd:f853:ccd:e799:ccd :f853:ccd:e799::f .f .f .f
.
두 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는 집계된 경로를 BGP 피어에 알리며, community 속성이 8443:800으로
설정되어 있습니다. BGP 피어는203.0.113.200/30
경로를 다른 BGP 피어에 전파합니다. 스피커가 있는 노드로 트래픽이 라우팅되면203.0.113.200/32
경로는 트래픽을 클러스터 및 서비스와 연결된 포드로 전달하는 데 사용됩니다.
더 많은 서비스와 MetalLB를 추가하면 풀에서 더 많은 로드 밸런서 IP 주소를 할당하면 피어 라우터는 각 서비스에 대해 하나의 로컬 경로 203.0.113.20x/32
를 수신하고 203.0.113.200/30
집계 경로를 수신합니다. 추가하는 각 서비스는 /30
경로를 생성하지만 MetalLB는 피어 라우터와 통신하기 전에 하나의 BGP 광고로 경로를 중복합니다.
26.3.4. 다음 단계
- BGP 모드의 경우 MetalLB BGP 피어 구성을 참조하십시오.
- MetalLB를 사용하도록 서비스 구성.