4.3. MetalLB BGP 피어 구성
클러스터 관리자는 BGP(Border Gateway Protocol) 피어를 추가, 수정, 삭제할 수 있습니다. MetalLB 운영자는 BGP 피어 사용자 정의 리소스를 사용하여 MetalLB 스피커
포드가 BGP 세션을 시작하기 위해 접속하는 피어를 식별합니다. 피어는 MetalLB가 서비스에 할당한 로드 밸런서 IP 주소에 대한 경로 광고를 수신합니다.
4.3.1. BGP 피어 사용자 정의 리소스에 관하여 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에서는 BGP 피어 사용자 지정 리소스의 필드에 대해 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
|
| BGP 피어 사용자 정의 리소스의 이름을 지정합니다. |
|
| BGP 피어 사용자 지정 리소스에 대한 네임스페이스를 지정합니다. |
|
|
BGP 세션의 로컬 종료에 대한 ASN(자율 시스템 번호)을 지정합니다. 추가하는 모든 BGP 피어 사용자 정의 리소스에 동일한 값을 지정합니다. 범위는 |
|
|
BGP 세션의 원격 끝에 대한 ASN을 지정합니다. 범위는 |
|
|
명시적으로 설정하지 않고 세션의 원격 끝에 사용할 ASN을 감지합니다. 동일한 ASN을 가진 피어의 경우 |
|
|
BGP 세션을 설정하기 위해 연결할 피어의 IP 주소를 지정합니다. 이 필드를 사용하면 |
|
|
세션을 설정할 때 사용할 인터페이스 이름을 지정합니다. 이 필드를 사용하여 번호가 지정되지 않은 BGP 피어링을 구성합니다. 두 BGP 피어 간에 지점 간, 계층 2 연결을 설정해야 합니다. IPv4, IPv6 또는 듀얼 스택에서 번호가 지정되지 않은 BGP 피어링을 사용할 수 있지만 IPv6 RA(라우터 광고)를 활성화해야 합니다. 각 인터페이스는 하나의 BGP 연결로 제한됩니다. 이 필드를 사용하면 |
|
| 선택 사항: BGP 세션을 설정할 때 사용할 IP 주소를 지정합니다. 값은 IPv4 주소여야 합니다. |
|
|
선택 사항: BGP 세션을 설정하기 위해 연결할 피어의 네트워크 포트를 지정합니다. 범위는 |
|
|
선택 사항: BGP 피어에 제안할 보류 시간의 기간을 지정합니다. 최소값은 3초( |
|
|
선택 사항: BGP 피어에 keep-alive 메시지를 보내는 최대 간격을 지정합니다. 이 필드를 지정하는 경우 |
|
| 선택 사항: BGP 피어에 광고할 라우터 ID를 지정합니다. 이 필드를 지정하는 경우 추가하는 모든 BGP 피어 사용자 지정 리소스에 동일한 값을 지정해야 합니다. |
|
| 선택 사항: TCP MD5 인증 BGP 세션을 강제하는 라우터에 대해 피어로 보낼 MD5 비밀번호를 지정합니다. |
|
|
선택 사항: BGP 피어에 대한 인증 비밀번호의 이름을 지정합니다. 비밀은 |
|
| 선택 사항: BFD 프로필의 이름을 지정합니다. |
|
| 선택 사항: 일치 표현식과 일치 레이블을 사용하여 선택기를 지정하여 어떤 노드가 BGP 피어에 연결할 수 있는지 제어합니다. |
|
|
선택 사항: BGP 피어가 여러 네트워크 홉 떨어져 있음을 지정합니다. BGP 피어가 동일한 네트워크에 직접 연결되어 있지 않으면 이 필드가 |
|
| BGP가 이웃과의 연결을 시도하는 사이에 기다리는 시간을 지정합니다. |
passwordSecret
필드는 password
필드와 상호 배타적이며, 사용할 비밀번호가 포함된 비밀에 대한 참조를 포함합니다. 두 필드를 모두 설정하면 구문 분석에 실패합니다.
4.3.2. BGP 피어 구성 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 BGP 피어 사용자 정의 리소스를 추가하여 네트워크 라우터와 라우팅 정보를 교환하고 서비스의 IP 주소를 광고할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 로그인합니다. - BGP 광고로 MetalLB를 구성합니다.
프로세스
다음 예시와 같은 내용을 담은
bgppeer.yaml
과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow BGP 피어에 대한 구성을 적용합니다.
oc apply -f bgppeer.yaml
$ oc apply -f bgppeer.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.3. 지정된 주소 풀에 대해 특정 BGP 피어 세트를 구성합니다. 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 다음 작업을 수행하는 방법을 보여줍니다.
-
주소 풀 세트(
pool1
및pool2
)를 구성합니다. -
BGP 피어 세트(
peer1
및peer2
)를 구성합니다. -
BGP 광고를 구성하여
pool1을
peer1
에,pool2를
peer2
에 할당합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 로그인합니다.
프로세스
주소 풀
pool1을
생성합니다.다음 예시와 같은 내용을 담은
ipaddresspool1.yaml
과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow IP 주소 풀
pool1
에 대한 구성을 적용합니다.oc apply -f ipaddresspool1.yaml
$ oc apply -f ipaddresspool1.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
주소 풀
pool2를
생성합니다.다음 예시와 같은 내용을 담은
ipaddresspool2.yaml
과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow IP 주소 풀
pool2
에 대한 구성을 적용합니다.oc apply -f ipaddresspool2.yaml
$ oc apply -f ipaddresspool2.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
BGP
peer1을
생성합니다.다음 예시와 같은 내용을 포함하는
bgppeer1.yaml
과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow BGP 피어에 대한 구성을 적용합니다.
oc apply -f bgppeer1.yaml
$ oc apply -f bgppeer1.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
BGP
peer2를
생성합니다.다음 예시와 같은 내용을 포함하는
bgppeer2.yaml
과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow BGP peer2에 대한 구성을 적용합니다.
oc apply -f bgppeer2.yaml
$ oc apply -f bgppeer2.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
BGP 광고 생성 1.
다음 예시와 같은 내용을 담은
bgpadvertisement1.yaml
과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 설정을 적용합니다.
oc apply -f bgpadvertisement1.yaml
$ oc apply -f bgpadvertisement1.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
BGP 광고 2를 생성합니다.
다음 예시와 같은 내용을 포함하는
bgpadvertisement2.yaml
과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 설정을 적용합니다.
oc apply -f bgpadvertisement2.yaml
$ oc apply -f bgpadvertisement2.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.4. 네트워크 VRF를 통한 서비스 노출 링크 복사링크가 클립보드에 복사되었습니다!
네트워크 인터페이스의 VRF를 BGP 피어와 연결하여 가상 라우팅 및 전달(VRF) 인스턴스를 통해 서비스를 노출할 수 있습니다.
BGP 피어의 VRF를 통해 서비스를 노출하는 것은 기술 미리 보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
네트워크 인터페이스에서 VRF를 사용하여 BGP 피어를 통해 서비스를 노출하면 서비스에 대한 트래픽을 분리하고, 독립적인 라우팅 결정을 구성하고, 네트워크 인터페이스에서 다중 테넌시 지원을 활성화할 수 있습니다.
네트워크 VRF에 속하는 인터페이스를 통해 BGP 세션을 설정함으로써 MetalLB는 해당 인터페이스를 통해 서비스를 광고하고 외부 트래픽이 이 인터페이스를 통해 서비스에 도달하도록 할 수 있습니다. 하지만 네트워크 VRF 라우팅 테이블은 OVN-Kubernetes에서 사용하는 기본 VRF 라우팅 테이블과 다릅니다. 따라서 트래픽이 OVN-Kubernetes 네트워크 인프라에 도달할 수 없습니다.
서비스로 전송되는 트래픽이 OVN-Kubernetes 네트워크 인프라에 도달할 수 있도록 하려면 네트워크 트래픽의 다음 홉을 정의하는 라우팅 규칙을 구성해야 합니다. 자세한 내용은 추가 리소스 섹션의 "MetalLB를 사용한 대칭 라우팅 관리"에서 NodeNetworkConfigurationPolicy
리소스를 참조하세요.
BGP 피어를 통해 네트워크 VRF를 통해 서비스를 노출하는 상위 단계는 다음과 같습니다.
- BGP 피어를 정의하고 네트워크 VRF 인스턴스를 추가합니다.
- MetalLB에 대한 IP 주소 풀을 지정합니다.
- VRF 인스턴스와 연관된 BGP 피어와 지정된 IP 주소 풀을 사용하여 경로를 광고하도록 MetalLB에 대한 BGP 경로 광고를 구성합니다.
- 구성을 테스트하기 위해 서비스를 배포합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 로그인했습니다. -
가상 라우팅 및 포워딩(VRF) 인스턴스를 네트워크 인터페이스와 연결하기 위해
NodeNetworkConfigurationPolicy를
정의했습니다. 이 필수 조건을 완료하는 방법에 대한 자세한 내용은 추가 리소스 섹션을 참조하세요. - 클러스터에 MetalLB를 설치했습니다.
프로세스
BGPPeer
사용자 정의 리소스(CR)를 만듭니다.다음 예시와 같은 내용을 포함하는
frrviavrf.yaml
과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- BGP 피어와 연결할 네트워크 VRF 인스턴스를 지정합니다. MetalLB는 VRF의 라우팅 정보를 기반으로 서비스를 광고하고 라우팅 결정을 내릴 수 있습니다.
참고NodeNetworkConfigurationPolicy
CR에서 이 네트워크 VRF 인스턴스를 구성해야 합니다. 자세한 내용은 추가 자료를 참조하세요.다음 명령을 실행하여 BGP 피어에 대한 구성을 적용합니다.
oc apply -f frrviavrf.yaml
$ oc apply -f frrviavrf.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
IPAddressPool
CR을 생성합니다.다음 예시와 같은 내용을 담은
first-pool.yaml
과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 IP 주소 풀에 대한 구성을 적용합니다.
oc apply -f first-pool.yaml
$ oc apply -f first-pool.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
BGP광고
CR을 만드세요:다음 예시와 같은 내용을 담은
first-adv.yaml
과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이 예에서 MetalLB는
첫 번째 풀
IP 주소 풀에서frrviavrf
BGP 피어로 IP 주소 범위를 광고합니다.
다음 명령을 실행하여 BGP 광고에 대한 구성을 적용합니다.
oc apply -f first-adv.yaml
$ oc apply -f first-adv.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
네임스페이스
,배포
및서비스
CR을 만듭니다.다음 예시와 같은 내용을 포함하는
deploy-service.yaml
과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 네임스페이스, 배포 및 서비스에 대한 구성을 적용합니다.
oc apply -f deploy-service.yaml
$ oc apply -f deploy-service.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 MetalLB 스피커 포드를 식별하세요.
oc get -n metallb-system pods -l component=speaker
$ oc get -n metallb-system pods -l component=speaker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE speaker-c6c5f 6/6 Running 0 69m
NAME READY STATUS RESTARTS AGE speaker-c6c5f 6/6 Running 0 69m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 스피커 포드에서 BGP 세션 상태가
설정
되었는지 확인하고, 구성과 일치하도록 변수를 바꿉니다.oc exec -n metallb-system <speaker_pod> -c frr -- vtysh -c "show bgp vrf <vrf_name> neigh"
$ oc exec -n metallb-system <speaker_pod> -c frr -- vtysh -c "show bgp vrf <vrf_name> neigh"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
BGP neighbor is 192.168.30.1, remote AS 200, local AS 100, external link BGP version 4, remote router ID 192.168.30.1, local router ID 192.168.30.71 BGP state = Established, up for 04:20:09 ...
BGP neighbor is 192.168.30.1, remote AS 200, local AS 100, external link BGP version 4, remote router ID 192.168.30.1, local router ID 192.168.30.71 BGP state = Established, up for 04:20:09 ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 서비스가 올바르게 광고되었는지 확인하세요.
oc exec -n metallb-system <speaker_pod> -c frr -- vtysh -c "show bgp vrf <vrf_name> ipv4"
$ oc exec -n metallb-system <speaker_pod> -c frr -- vtysh -c "show bgp vrf <vrf_name> ipv4"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.5. BGP 피어 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
4.3.5.1. 예: BGP 피어에 연결하는 노드 제한 링크 복사링크가 클립보드에 복사되었습니다!
노드 선택기 필드를 지정하여 어떤 노드가 BGP 피어에 연결할 수 있는지 제어할 수 있습니다.
4.3.5.2. 예: BGP 피어에 대한 BFD 프로필 지정 링크 복사링크가 클립보드에 복사되었습니다!
BGP 피어와 연결할 BFD 프로필을 지정할 수 있습니다. BFD는 BGP만 사용할 때보다 피어 간 통신 장애를 더 빠르게 감지하여 BGP를 보완합니다.
양방향 전달 감지(BFD) 프로필을 삭제하고 BGP(Border Gateway Protocol) 피어 리소스에 추가된 bfdProfile을
제거해도 BFD가 비활성화되지 않습니다. 대신 BGP 피어는 기본 BFD 프로필 사용을 시작합니다. BGP 피어 리소스에서 BFD를 비활성화하려면 BGP 피어 구성을 삭제하고 BFD 프로필없이 다시 생성합니다. 자세한 내용은 BZ#2050824를 참조하세요.
4.3.5.3. 예: 듀얼 스택 네트워킹을 위한 BGP 피어 지정 링크 복사링크가 클립보드에 복사되었습니다!
듀얼 스택 네트워킹을 지원하려면 IPv4에 대한 BGP 피어 사용자 정의 리소스 하나와 IPv6에 대한 BGP 피어 사용자 정의 리소스 하나를 추가합니다.
4.3.5.4. 예: 번호가 지정되지 않은 BGP 피어링에 대한 BGP 피어 지정 링크 복사링크가 클립보드에 복사되었습니다!
spec.interface
필드는 기술 미리보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
번호가 지정되지 않은 BGP 피어링을 구성하려면 다음 예제 구성을 사용하여 spec.interface
필드에 인터페이스를 지정합니다.
인터페이스
필드를 사용하려면 두 BGP 피어 간에 지점 간, 계층 2 연결을 설정해야 합니다. IPv4, IPv6 또는 듀얼 스택에서 번호가 지정되지 않은 BGP 피어링을 사용할 수 있지만 IPv6 RA(라우터 광고)를 활성화해야 합니다. 각 인터페이스는 하나의 BGP 연결로 제한됩니다.
이 필드를 사용하면 spec.bgp.routers.neighbors.address
필드에 값을 지정할 수 없습니다.