協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定混合節點的 Cilium BGP
本主題會說明如何設定 Amazon EKS 混合節點的 Cilium 邊界閘道協定 (BGP)。Cilium 的 BGP 功能稱為 Cilium BGP 控制平面
設定 Cilium BGP
先決條件
-
遵循 設定混合節點的 CNI 中的指示安裝 Cilium。
程序
-
若要搭配 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 -
確認 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 -
建立稱為
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_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 對等組態。 下列 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: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的檔案,以向內部部署網路公告 Pod CIDR。-
CiliumBGPAdvertisement資源可用於定義與其相關聯的廣告類型和屬性。以下範例會將 Cilium 設定為僅公告 Pod CIDR。如需設定 Cilium 以公告服務地址的詳細資訊,請參閱 服務類型 LoadBalancer 和 Cilium 叢集內負載平衡 中的範例。 -
執行 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"
-
-
將 Cilium BGP 公告組態套用至您的叢集。
kubectl apply -f cilium-bgp-advertisement-pods.yaml -
您可以使用
cilium bgp peers命令,確認 BGP 對等互連與 Cilium CLI搭配運作。您應該會在環境的輸出中看到正確的值,且工作階段狀態為 established。如需有關故障診斷的詳細資訊,請參閱 Cilium 文件中的故障診斷和操作指南。 在以下範例中,有五個執行 Cilium 代理程式的混合節點,且每個節點將會公告其擁有的 Pod 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}]