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

協助改進此頁面

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

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

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

設定混合節點的 Cilium BGP

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

設定 Cilium BGP

先決條件

程序

  1. 若要搭配 Cilium 使用 BGP 向內部部署網路公告 Pod 或服務地址,Cilium 必須與 bgpControlPlane.enabled: true 一起安裝。如果您要為現有的 Cilium 部署啟用 BGP,則必須重新啟動 Cilium 運算子才能套用 BGP 組態 (如果先前尚未啟用 BGP)。您可以在 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
  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. 建立稱為 cilium-bgp-cluster.yaml 的檔案,其中具有 CiliumBGPClusterConfig 定義。您可能需要向您的網路管理員取得下列資訊。

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

    kubectl apply -f cilium-bgp-cluster.yaml
  5. 使用定義 BGP 對等組態的 CiliumBGPPeerConfig 資源建立名為 cilium-bgp-peer.yaml 的檔案。多個對等可以共用相同的組態,並提供常見 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. 使用 CiliumBGPAdvertisement 資源建立名為 cilium-bgp-advertisement-pods.yaml 的檔案,以向內部部署網路公告 Pod CIDR。

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

    • 執行 Cilium 代理程式的每個混合節點皆與上游已啟用 BGP 的路由器對等。當 Cilium 的 advertisementType 設定為 PodCIDR (如以下範例所示) 時,每個節點都會公告其擁有的 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}]