검색

32.6. MetalLB BGP 피어 구성

download PDF

클러스터 관리자는 BGP(Border Gateway Protocol) 피어를 추가, 수정, 삭제할 수 있습니다. MetalLB Operator는 BGP 피어 사용자 정의 리소스를 사용하여 MetalLB 발표자 Pod가 BGP 세션을 시작하는 피어를 식별합니다. 피어는 MetalLB가 서비스에 할당하는 로드 밸런서 IP 주소에 대한 경로 알림을 수신합니다.

32.6.1. BGP 피어 사용자 정의 리소스 정보

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

표 32.4. MetalLBGP 피어 사용자 정의 리소스
필드유형설명

metadata.name

string

BGP 피어 사용자 정의 리소스의 이름을 지정합니다.

metadata.namespace

string

BGP 피어 사용자 정의 리소스의 네임스페이스를 지정합니다.

spec.myASN

integer

BGP 세션의 로컬 종료에 대한 Autonomous 시스템 번호를 지정합니다. 추가하는 모든 BGP 피어 사용자 정의 리소스에서 동일한 값을 지정합니다. 범위는 0 에서 4294967295 입니다.

spec.peerASN

integer

BGP 세션의 원격 종료에 대한 Autonomous 시스템 번호를 지정합니다. 범위는 0 에서 4294967295 입니다.

spec.peerAddress

string

BGP 세션을 설정하기 위해 연결할 피어의 IP 주소를 지정합니다.

spec.sourceAddress

string

선택 사항: BGP 세션을 설정할 때 사용할 IP 주소를 지정합니다. 값은 IPv4 주소여야 합니다.

spec.peerPort

integer

선택 사항: BGP 세션을 설정하기 위해 연결할 피어의 네트워크 포트를 지정합니다. 범위는 0 에서 16384 사이입니다.

spec.holdTime

string

선택 사항: BGP 피어를 제안할 대기 시간 기간을 지정합니다. 최소 값은 3초(1초)입니다. 공통 단위는 3s,1m, 5m30s 와 같은 초와 분입니다. 경로 오류를 더 빠르게 감지하려면 BFD도 구성합니다.

spec.keepaliveTime

string

선택 사항: BGP 피어에 유지 메시지를 보내는 간격을 지정합니다. 이 필드를 지정하는 경우 holdTime 필드의 값도 지정해야 합니다. 지정된 값은 holdTime 필드의 값보다 작아야 합니다.

spec.routerID

string

선택 사항: BGP 피어에 공개할 라우터 ID를 지정합니다. 이 필드를 지정하는 경우 추가하는 모든 BGP 피어 사용자 정의 리소스에서 동일한 값을 지정해야 합니다.

spec.password

string

선택 사항: TCP MD5 인증된 BGP 세션을 적용하는 라우터의 피어에 보낼 MD5 암호를 지정합니다.

spec.passwordSecret

string

선택 사항: BGP Peer에 대한 인증 보안의 이름을 지정합니다. 시크릿은 metallb 네임스페이스에 있어야 하며 유형이 basic-auth여야 합니다.

spec.bfdProfile

string

선택 사항: BFD 프로필의 이름을 지정합니다.

spec.nodeSelectors

object[]

선택 사항: 일치 식과 일치 레이블을 사용하여 선택기를 지정하여 BGP 피어에 연결할 수 있는 노드를 제어합니다.

spec.ebgpMultiHop

boolean

선택 사항: BGP 피어가 여러 네트워크 홉이 떨어져 있음을 지정합니다. BGP 피어가 동일한 네트워크에 직접 연결되지 않은 경우 이 필드가 true 로 설정되지 않은 경우 발표자는 BGP 세션을 설정할 수 없습니다. 이 필드는 외부 BGP 에 적용됩니다. 외부 BGP는 BGP 피어가 다른 Autonomous 시스템에 속하는 시기를 설명하는 데 사용되는 용어입니다.

참고

passwordSecret 필드는 password 필드와 함께 사용할 수 없으며 사용할 암호 가 포함된 보안에 대한 참조를 포함합니다. 두 필드를 모두 설정하면 구문 분석 오류가 발생합니다.

32.6.2. BGP 피어 구성

클러스터 관리자는 BGP 피어 사용자 정의 리소스를 추가하여 네트워크 라우터와 라우팅 정보를 교환하고 서비스의 IP 주소를 알릴 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 로그인합니다.
  • BGP 광고를 사용하여 MetalLB를 구성합니다.

절차

  1. 다음 예와 같은 내용을 사용하여 bgppeer.yaml 과 같은 파일을 생성합니다.

    apiVersion: metallb.io/v1beta2
    kind: BGPPeer
    metadata:
      namespace: metallb-system
      name: doc-example-peer
    spec:
      peerAddress: 10.0.0.1
      peerASN: 64501
      myASN: 64500
      routerID: 10.10.10.10
  2. BGP 피어 구성을 적용합니다.

    $ oc apply -f bgppeer.yaml

32.6.3. 지정된 주소 풀에 대해 특정 BGP 피어 세트 구성

다음 절차에서는 다음 방법을 설명합니다.

  • 주소 풀 세트를 구성합니다(pool1pool2).
  • BGP 피어 세트(peer1peer2)를 구성합니다.
  • pool1peer1 에 할당하고 pool2peer2 에 할당하도록 BGP 알림을 구성합니다.

사전 요구 사항

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

절차

  1. 주소 풀 pool1 을 생성합니다.

    1. 다음 예와 같은 콘텐츠를 사용하여 ipaddresspool1.yaml 과 같은 파일을 생성합니다.

      apiVersion: metallb.io/v1beta1
      kind: IPAddressPool
      metadata:
        namespace: metallb-system
        name: pool1
      spec:
        addresses:
          - 4.4.4.100-4.4.4.200
          - 2001:100:4::200-2001:100:4::400
    2. IP 주소 pool1 에 대한 설정을 적용합니다.

      $ oc apply -f ipaddresspool1.yaml
  2. 주소 풀 풀2 를 만듭니다.

    1. 다음 예와 같은 내용으로 ipaddresspool2.yaml 과 같은 파일을 생성합니다.

      apiVersion: metallb.io/v1beta1
      kind: IPAddressPool
      metadata:
        namespace: metallb-system
        name: pool2
      spec:
        addresses:
          - 5.5.5.100-5.5.5.200
          - 2001:100:5::200-2001:100:5::400
    2. IP 주소 풀 pool2 에 대한 설정을 적용합니다.

      $ oc apply -f ipaddresspool2.yaml
  3. BGP peer1 을 만듭니다.

    1. 다음 예와 같은 내용을 사용하여 bgppeer1.yaml 과 같은 파일을 생성합니다.

      apiVersion: metallb.io/v1beta2
      kind: BGPPeer
      metadata:
        namespace: metallb-system
        name: peer1
      spec:
        peerAddress: 10.0.0.1
        peerASN: 64501
        myASN: 64500
        routerID: 10.10.10.10
    2. BGP 피어 구성을 적용합니다.

      $ oc apply -f bgppeer1.yaml
  4. BGP 피어 를 만듭니다.

    1. 다음 예와 같은 내용을 사용하여 bgppeer2.yaml 과 같은 파일을 생성합니다.

      apiVersion: metallb.io/v1beta2
      kind: BGPPeer
      metadata:
        namespace: metallb-system
        name: peer2
      spec:
        peerAddress: 10.0.0.2
        peerASN: 64501
        myASN: 64500
        routerID: 10.10.10.10
    2. BGP peer2의 구성을 적용합니다.

      $ oc apply -f bgppeer2.yaml
  5. BGP 광고 1을 생성합니다.

    1. 다음 예와 같은 콘텐츠를 사용하여 bgpadvertisement1.yaml 과 같은 파일을 생성합니다.

      apiVersion: metallb.io/v1beta1
      kind: BGPAdvertisement
      metadata:
        name: bgpadvertisement-1
        namespace: metallb-system
      spec:
        ipAddressPools:
          - pool1
        peers:
          - peer1
        communities:
          - 65535:65282
        aggregationLength: 32
        aggregationLengthV6: 128
        localPref: 100
    2. 설정을 적용합니다.

      $ oc apply -f bgpadvertisement1.yaml
  6. BGP 광고 2를 생성합니다.

    1. 다음 예와 같은 콘텐츠를 사용하여 bgpadvertisement2.yaml 과 같은 파일을 생성합니다.

      apiVersion: metallb.io/v1beta1
      kind: BGPAdvertisement
      metadata:
        name: bgpadvertisement-2
        namespace: metallb-system
      spec:
        ipAddressPools:
          - pool2
        peers:
          - peer2
        communities:
          - 65535:65282
        aggregationLength: 32
        aggregationLengthV6: 128
        localPref: 100
    2. 설정을 적용합니다.

      $ oc apply -f bgpadvertisement2.yaml

32.6.4. BGP 피어 구성의 예

32.6.4.1. 예: BGP 피어에 연결되는 노드 제한

노드 선택기 필드를 지정하여 BGP 피어에 연결할 수 있는 노드를 제어할 수 있습니다.

apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
  name: doc-example-nodesel
  namespace: metallb-system
spec:
  peerAddress: 10.0.20.1
  peerASN: 64501
  myASN: 64500
  nodeSelectors:
  - matchExpressions:
    - key: kubernetes.io/hostname
      operator: In
      values: [compute-1.example.com, compute-2.example.com]

32.6.4.2. 예: BGP 피어에 대한 BFD 프로필 지정

BFD 프로필을 지정하여 BGP 피어와 연결할 수 있습니다. BFD는 BGP만으로는 피어 간의 통신 실패를 보다 신속하게 감지할 수 있도록 BGP를 제공합니다.

apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
  name: doc-example-peer-bfd
  namespace: metallb-system
spec:
  peerAddress: 10.0.20.1
  peerASN: 64501
  myASN: 64500
  holdTime: "10s"
  bfdProfile: doc-example-bfd-profile-full
참고

BFD(Bidirectional forwarding detection) 프로필을 삭제하고 BGP(Border Gateway Protocol) 피어 리소스에 추가된 bfdProfile 을 제거하면 BFD가 비활성화되지 않습니다. 대신 BGP 피어는 기본 BFD 프로필 사용을 시작합니다. BGP 피어 리소스에서 BFD를 비활성화하려면 BGP 피어 구성을 삭제하고 BFD 프로필없이 다시 생성합니다. 자세한 내용은 BZ#2050824 에서 참조하십시오.

32.6.4.3. 예: 듀얼 스택 네트워킹을 위해 BGP 피어 지정

듀얼 스택 네트워킹을 지원하려면 IPv4를 위한 하나의 BGP 피어 사용자 정의 리소스와 IPv6용 BGP 피어 사용자 지정 리소스를 추가합니다.

apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
  name: doc-example-dual-stack-ipv4
  namespace: metallb-system
spec:
  peerAddress: 10.0.20.1
  peerASN: 64500
  myASN: 64500
---
apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
  name: doc-example-dual-stack-ipv6
  namespace: metallb-system
spec:
  peerAddress: 2620:52:0:88::104
  peerASN: 64500
  myASN: 64500

32.6.5. 다음 단계

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.