協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為混合節點設定 Cilium BGP
本主題說明如何設定 Amazon EKS 混合節點的 Cilium 邊界閘道通訊協定 (BGP)。Cilium 的 BGP 功能稱為 Cilium BGP 控制平面
設定 Cilium BGP
先決條件
-
按照 中的指示安裝 Cilium設定混合節點的 CNI。
程序
-
若要搭配 Cilium 使用 BGP,以內部部署網路公告 Pod 或服務地址,Cilium 必須搭配 安裝
bgpControlPlane.enabled: true
。如果您為現有的 Cilium 部署啟用 BGP,如果先前未啟用 BGP,則必須重新啟動 Cilium 運算子來套用 BGP 組態。您可以在 Helm 值true
中operator.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
-
確認 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 的節點
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"
-
-
將 Cilium BGP 叢集組態套用至您的叢集。
kubectl apply -f cilium-bgp-cluster.yaml
-
使用定義 BGP 對等組態
cilium-bgp-peer.yaml
CiliumBGPPeerConfig
的資源建立名為 的檔案。多個對等可以共用相同的組態,並提供常見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"
-
-
將 Cilium BGP 對等組態套用至您的叢集。
kubectl apply -f cilium-bgp-peer.yaml
-
使用
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"
-
-
將 Cilium BGP 公告組態套用至您的叢集。
kubectl apply -f cilium-bgp-advertisement-pods.yaml
-
您可以使用
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-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}]