為混合節點設定 Cilium BGP - Amazon EKS

協助改善此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要提供此使用者指南,請選擇位於每個頁面右窗格中的在 GitHub 上編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為混合節點設定 Cilium BGP

本主題說明如何設定 Amazon EKS 混合節點的 Cilium 邊界閘道通訊協定 (BGP)。Cilium 的 BGP 功能稱為 Cilium BGP 控制平面,可用於向內部部署網路公告 Pod 和服務地址。如需讓 Pod CIDRs 在內部部署網路上可路由的替代方法,請參閱 可路由遠端 Pod CIDRs

設定 Cilium BGP

先決條件

程序

  1. 若要搭配 Cilium 使用 BGP,以內部部署網路公告 Pod 或服務地址,Cilium 必須搭配 安裝bgpControlPlane.enabled: true。如果您為現有的 Cilium 部署啟用 BGP,如果先前未啟用 BGP,則必須重新啟動 Cilium 運算子來套用 BGP 組態。您可以在 Helm 值trueoperator.rollOutPods將 設定為 ,以在 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
  2. 確認 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
  3. 使用 CiliumBGPClusterConfig定義建立名為 cilium-bgp-cluster.yaml 的檔案。您可能需要向您的網路管理員取得下列資訊。

    • 針對執行 Cilium 的節點localASN,使用 ASN 設定 。

    • 使用現場部署路由器的 peerASN ASN 設定 。

    • peerAddress 使用執行 Cilium 的每個節點將與其對等的現場部署路由器 IP 來設定 。

      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"
  4. 將 Cilium BGP 叢集組態套用至您的叢集。

    kubectl apply -f cilium-bgp-cluster.yaml
  5. 使用定義 BGP 對等組態cilium-bgp-peer.yamlCiliumBGPPeerConfig的資源建立名為 的檔案。多個對等可以共用相同的組態,並提供常見CiliumBGPPeerConfig資源的參考。如需組態選項的完整清單,請參閱 Cilium 文件中的 BGP 對等組態。

    下列 Cilium 對等設定的值必須符合您要對等之內部部署路由器的值。

    • 設定 holdTimeSeconds 以決定 BGP 對等等待保持連線或更新訊息的時間,再宣告工作階段關閉。預設值為 90 秒。

    • 設定 keepAliveTimeSeconds 來判斷 BGP 對等是否仍可連線,以及 BGP 工作階段是否作用中。預設為 30 秒。

    • 設定 restartTimeSeconds 以決定 Cilium 的 BGP 控制平面在重新啟動後預期重新建立 BGP 工作階段的時間。預設值為 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"
  6. 將 Cilium BGP 對等組態套用至您的叢集。

    kubectl apply -f cilium-bgp-peer.yaml
  7. 使用 cilium-bgp-advertisement-pods.yaml CiliumBGPAdvertisement 資源建立名為 的檔案,以向內部部署網路公告 Pod CIDRs。

    • CiliumBGPAdvertisement 資源用於定義與其相關聯的廣告類型和屬性。以下範例會將 Cilium 設定為僅公告 Pod CIDRs。如需設定 Cilium Cilium 叢集內負載平衡 以公告服務地址的詳細資訊,請參閱 服務類型 LoadBalancer和 中的範例。

    • 每個執行 Cilium 代理程式對等與啟用上游 BGP 的路由器的混合節點。當 Cilium 的 設定為PodCIDR如以下範例所示時,每個節點advertisementType都會公告其擁有的 Pod CIDR 範圍。如需詳細資訊,請參閱 Cilium 文件中的 BGP 公告組態

      apiVersion: cilium.io/v2alpha1 kind: CiliumBGPAdvertisement metadata: name: bgp-advertisement-pods labels: advertise: bgp spec: advertisements: - advertisementType: "PodCIDR"
  8. 將 Cilium BGP 公告組態套用至您的叢集。

    kubectl apply -f cilium-bgp-advertisement-pods.yaml
  9. 您可以使用 cilium bgp peers命令,確認 BGP 對等互連與 Cilium CLI 搭配運作。您應該會在環境的輸出中看到正確的值,工作階段狀態為 established。如需故障診斷的詳細資訊,請參閱 Cilium 文件中的故障診斷和操作指南

    在下面的範例中,有五個執行 Cilium 代理程式的混合節點,每個節點正在公告其擁有的 Pod 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-082f73826a163626e NODES_ASN ONPREM_ROUTER_ASN ONPREM_ROUTER_IP established 1h19m12s ipv4/unicast 1 2 mi-09183e8a3d755abf6 NODES_ASN ONPREM_ROUTER_ASN ONPREM_ROUTER_IP established 1h18m47s ipv4/unicast 1 2 mi-0d78d815980ed202d NODES_ASN ONPREM_ROUTER_ASN ONPREM_ROUTER_IP established 1h19m12s ipv4/unicast 1 2 mi-0daa253999fe92daa NODES_ASN ONPREM_ROUTER_ASN ONPREM_ROUTER_IP established 1h18m58s ipv4/unicast 1 2
    cilium 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-082f73826a163626e NODES_ASN 10.86.2.192/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-09183e8a3d755abf6 NODES_ASN 10.86.2.64/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-0d78d815980ed202d NODES_ASN 10.86.2.128/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-0daa253999fe92daa NODES_ASN 10.86.3.0/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}]