이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 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=ciliumNAME 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_ASNpeers: - name: "onprem-router" peerASN:ONPREM_ROUTER_ASNpeerAddress:ONPREM_ROUTER_IPpeerConfigRef: 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:90keepAliveTimeSeconds:30gracefulRestart: enabled: true restartTimeSeconds:120families: - 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 peersNode Local AS Peer AS Peer Address Session State Uptime Family Received Advertised mi-026d6a261e355fba7NODES_ASNONPREM_ROUTER_ASNONPREM_ROUTER_IPestablished 1h18m58s ipv4/unicast 1 2 mi-082f73826a163626eNODES_ASNONPREM_ROUTER_ASNONPREM_ROUTER_IPestablished 1h19m12s ipv4/unicast 1 2 mi-09183e8a3d755abf6NODES_ASNONPREM_ROUTER_ASNONPREM_ROUTER_IPestablished 1h18m47s ipv4/unicast 1 2 mi-0d78d815980ed202dNODES_ASNONPREM_ROUTER_ASNONPREM_ROUTER_IPestablished 1h19m12s ipv4/unicast 1 2 mi-0daa253999fe92daaNODES_ASNONPREM_ROUTER_ASNONPREM_ROUTER_IPestablished 1h18m58s ipv4/unicast 1 2cilium bgp routesNode VRouter Prefix NextHop Age Attrs mi-026d6a261e355fba7NODES_ASN10.86.2.0/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-082f73826a163626eNODES_ASN10.86.2.192/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-09183e8a3d755abf6NODES_ASN10.86.2.64/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-0d78d815980ed202dNODES_ASN10.86.2.128/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-0daa253999fe92daaNODES_ASN10.86.3.0/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}]