帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
为混合节点配置 Cilium BGP
本主题介绍如何为 Amazon EKS 混合节点功能配置 Cilium 边界网关协议(BGP)。Cilium 的 BGP 功能称为 Cilium BGP 控制面板
配置 Cilium BGP
先决条件
-
按照为混合节点配置 CNI中的说明安装 Cilium。
过程
-
要将 BGP 与 Cilium 结合使用,以向本地网络通告容器组(pod)或服务地址,必须已经安装了 Cilium 并配置了
bgpControlPlane.enabled: true。如果要为现有 Cilium 部署启用 BGP,则如果之前未启用 BGP,则必须重新启动 Cilium 管理器才能应用 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 -
创建带有
CiliumBGPClusterConfig定义的名为cilium-bgp-cluster.yaml的文件。您可能需要从网络管理员获取以下信息:-
使用 ASN 为运行 Cilium 的节点配置
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 对等设置的值必须与您正在与之对等的本地路由器的值相匹配。
-
配置
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 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 CLI
,使用 cilium bgp peers命令来确认 BGP 对等连接是否有效。您应会在输出中看到您环境的正确值,会话状态为established。有关故障排除的更多信息,请参阅 Cilium 文档中的 Troubleshooting and Operations Guide。 在下面的示例中,有五个混合节点在运行 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}]