이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
하이브리드 노드에 대한 Cilium BGP 구성
이 주제에서는 Amazon EKS Hybrid Nodes에 대한 Cilium Border Gateway Protocol(BGP)을 구성하는 방법을 설명합니다. Cilium의 BGP 기능은 Cilium BGP Control Plane
Cilium BGP 구성
사전 조건
-
하이브리드 노드에 대한 CNI 구성의 지침에 따라 Cilium이 설치되어 있습니다.
절차
-
BGP를 Cilium과 함께 사용하여 온프레미스 네트워크에 포드 또는 서비스 주소를 알리려면
bgpControlPlane.enabled: true
로 Cilium을 설치해야 합니다. 기존 Cilium 배포에 대해 BGP를 활성화하는 경우 BGP가 이전에 활성화되지 않은 경우 BGP 구성을 적용하려면 Cilium 연산자를 다시 시작해야 합니다. Helm 값에서operator.rollOutPods
를true
로 설정하여 Helm 설치/업그레이드 프로세스의 일부로 Cilium 연산자를 다시 시작할 수 있습니다.helm upgrade cilium oci://public.ecr.aws/eks/cilium/cilium \ --namespace kube-system \ --reuse-values \ --set operator.rollOutPods=true \ --set bgpControlPlane.enabled=true
-
Cilium 운영자와 에이전트가 다시 시작되어 실행 중인지 확인합니다.
kubectl -n kube-system get pods --selector=app.kubernetes.io/part-of=cilium
NAME READY STATUS RESTARTS AGE cilium-grwlc 1/1 Running 0 4m12s cilium-operator-68f7766967-5nnbl 1/1 Running 0 4m20s cilium-operator-68f7766967-7spfz 1/1 Running 0 4m20s cilium-pnxcv 1/1 Running 0 6m29s cilium-r7qkj 1/1 Running 0 4m12s cilium-wxhfn 1/1 Running 0 4m1s cilium-z7hlb 1/1 Running 0 6m30s
-
CiliumBGPClusterConfig
정의를 포함하여cilium-bgp-cluster.yaml
파일을 생성합니다. 네트워크 관리자로부터 다음 정보를 얻어야 할 수 있습니다.-
Cilium을 실행하는 노드의 ASN으로
localASN
을 구성합니다. -
온프레미스 라우터의 ASN으로
peerASN
을 구성합니다. -
Cilium을 실행하는 각 노드가 피어링할 온프레미스 라우터 IP로
peerAddress
을 구성합니다.apiVersion: cilium.io/v2alpha1 kind: CiliumBGPClusterConfig metadata: name: cilium-bgp spec: nodeSelector: matchExpressions: - key: eks.amazonaws.com/compute-type operator: In values: - hybrid bgpInstances: - name: "rack0" localASN:
NODES_ASN
peers: - name: "onprem-router" peerASN:ONPREM_ROUTER_ASN
peerAddress:ONPREM_ROUTER_IP
peerConfigRef: name: "cilium-peer"
-
-
클러스터에 Cilium BGP 클러스터 구성을 적용합니다.
kubectl apply -f cilium-bgp-cluster.yaml
-
BGP 피어 구성을 정의하는
CiliumBGPPeerConfig
리소스를 포함하여cilium-bgp-peer.yaml
파일을 생성합니다. 여러 피어가 동일한 구성을 공유하고 공통CiliumBGPPeerConfig
리소스에 대한 참조를 제공할 수 있습니다. 구성 옵션의 전체 목록은 Cilium 문서의 BGP Peer configuration페이지를 참조하세요. 다음 Cilium 피어 설정의 값은 피어링하려는 온프레미스 라우터의 값과 일치해야 합니다.
-
세션의 중단 상태를 선언하기 전에 BGP 피어가 킵얼라이브 또는 업데이트 메시지를 기다리는 시간을 결정하는
holdTimeSeconds
를 구성합니다. 기본값은 90초입니다. -
BGP 피어가 계속 연결할 수 있고 BGP 세션이 활성 상태인지 여부를 결정하는
keepAliveTimeSeconds
를 구성합니다. 기본값은 30초입니다. -
재시작 후 Cilium의 BGP Control Plane에서 BGP 세션을 다시 설정할 것으로 예상되는 시간을 결정하는
restartTimeSeconds
를 구성합니다. 기본값은 120초입니다.apiVersion: cilium.io/v2alpha1 kind: CiliumBGPPeerConfig metadata: name: cilium-peer spec: timers: holdTimeSeconds:
90
keepAliveTimeSeconds:30
gracefulRestart: enabled: true restartTimeSeconds:120
families: - afi: ipv4 safi: unicast advertisements: matchLabels: advertise: "bgp"
-
-
클러스터에 Cilium BGP 피어 구성을 적용합니다.
kubectl apply -f cilium-bgp-peer.yaml
-
CiliumBGPAdvertisement
리소스를 포함하는cilium-bgp-advertisement-pods.yaml
파일을 생성하여 포드 CIDR을 온프레미스 네트워크에 알립니다.-
CiliumBGPAdvertisement
리소스는 광고 유형 및 이와 관련된 속성을 정의하는 데 사용됩니다. 아래 예시에서는 포드 CIDR만 알리도록 Cilium을 구성합니다. 서비스 주소를 알리도록 Cilium을 구성하는 방법에 대한 자세한 내용은 Service 유형 LoadBalancer 및 Cilium 클러스터 내 로드 밸런싱의 예시를 참조하세요. -
Cilium 에이전트를 실행하는 각 하이브리드 노드는 업스트림 BGP 지원 라우터와 피어링됩니다. 각 노드는 아래 예시와 같이 Cilium의
advertisementType
이PodCIDR
로 설정된 경우 소유한 포드 CIDR 범위를 알립니다. 자세한 내용은 Cilium 문서의 BGP Advertisements configuration을 참조하세요. apiVersion: cilium.io/v2alpha1 kind: CiliumBGPAdvertisement metadata: name: bgp-advertisement-pods labels: advertise: bgp spec: advertisements: - advertisementType: "PodCIDR"
-
-
클러스터에 Cilium BGP 광고 구성을 적용합니다.
kubectl apply -f cilium-bgp-advertisement-pods.yaml
-
cilium bgp peers
명령을 사용하여 Cilium CLI에서 작동하는 BGP 피어링을 확인할 수 있습니다. 환경에 대한 출력에 올바른 값이 표시되고 세션 상태가 established
로 설정되어야 합니다. 문제 해결에 대한 자세한 내용은 Cilium 설명서의 Troubleshooting and Operations Guide를 참조하세요. 아래 예시에서는 Cilium 에이전트를 실행하는 하이브리드 노드가 5개 있으며 각 노드는 소유한 포드 CIDR 범위를 알리고 있습니다.
cilium bgp peers
Node Local AS Peer AS Peer Address Session State Uptime Family Received Advertised mi-026d6a261e355fba7
NODES_ASN
ONPREM_ROUTER_ASN
ONPREM_ROUTER_IP
established 1h18m58s ipv4/unicast 1 2 mi-082f73826a163626eNODES_ASN
ONPREM_ROUTER_ASN
ONPREM_ROUTER_IP
established 1h19m12s ipv4/unicast 1 2 mi-09183e8a3d755abf6NODES_ASN
ONPREM_ROUTER_ASN
ONPREM_ROUTER_IP
established 1h18m47s ipv4/unicast 1 2 mi-0d78d815980ed202dNODES_ASN
ONPREM_ROUTER_ASN
ONPREM_ROUTER_IP
established 1h19m12s ipv4/unicast 1 2 mi-0daa253999fe92daaNODES_ASN
ONPREM_ROUTER_ASN
ONPREM_ROUTER_IP
established 1h18m58s ipv4/unicast 1 2cilium bgp routes
Node VRouter Prefix NextHop Age Attrs mi-026d6a261e355fba7
NODES_ASN
10.86.2.0/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-082f73826a163626eNODES_ASN
10.86.2.192/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-09183e8a3d755abf6NODES_ASN
10.86.2.64/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-0d78d815980ed202dNODES_ASN
10.86.2.128/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-0daa253999fe92daaNODES_ASN
10.86.3.0/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}]