干货 | 携程 Cilium+BGP 云原生网络实践

Cilium与BGP集成实战:打通云原生与传统网络架构 边界网关协议(BGP)作为互联网核心路由协议,通过交换网络可达性信息实现自治系统间的互联互通。其工作原理基于路径向量算法,通过UPDATE报文传播路由信息,具备良好的可扩展性和策略控制能力。在云原生技术领域,容器网络接口(CNI)负责管理Kubernetes集群内部网络,而BGP则成为连接容器网络与传统基础设施的关键桥梁。通过将Cilium基于eBPF的高性能网络能力与BGP路由宣告相结合,可以实现Pod IP和Service IP对外部网络的直接可达,这项技术在混合云环境、金属裸机集群(Bare Meta 阅读详情

作者简介

 

Arthur,Stephen,Jaff,Weir,几位均来自携程云平台基础设施和网络研发团队,目前专注于网络和云原生安全相关的开发。

Cilium 是近两年最火的云原生网络方案之一。Cilium 的核心基于 eBPF,有两大亮点:基于 eBPF 的灵活、高性能网络,以及基于 eBPF 的 L3-L7 安全策略实现。

携程 2019 年开始在生产环境使用 Cilium,本文将介绍 Cilium 在携程的落地情况,以及我们基于 Cilium 的、覆盖虚拟机、物理机和容器的云原生安全的一些探索。

一、网络演进简要回顾

从 2013 年到 2018 年,我们经历了物理机到虚拟机再到容器的基础设施演进,但网络技术栈基本都是沿用 Neutron+OVS —— 即使对我们(前期)的 Kubernetes 集群也是如此。但业务开始往 Kubernetes 迁移之后,这套 Neutron+OVS 的网络方案越来越捉襟见肘,尤其是在部署密度更高、规模更大的容器面前,这种大二层网络模型的软件和硬件瓶颈暴露无遗 [1]。

为了解决这些问题,更重要的,为了满足云原生业务的各种需求(例如,支持Kubernetes 的 Service 模型),我们调研了很多较新的网络方案,综合评估之后,选择了 Cilium+BGP 的组合 [3]。

Fig 1-1. Networking solutions over the past years [2]

Cilium+BGP 方案 2019 年底正式在生产环境落地,我们打通了 Cilium 网络和现有网络,因此能灰度将容器从 Neutron 迁移到 Cilium。


二、云原生网络实践

作为 Cilium 的早期用户之一,我们对 Cilium 的实现和部署做了一些修改或定制化,以使这套方案能平滑地落地到现有的基础设施之中,例如 [2],

1)用 docker-compsoe + salt 来部署,而不是采用默认的 daemonset+configmap 方式。

这样每台 node 上的 cilium-agent 都有独立配置,我们能完全控制发布灰度,将 变更风险降到最低。

2)用 BIRD 作为 BGP agent,而不是采用默认的 kube-router。

kube-router 开箱即用,但缺少对 ECMP、BFD 等高级功能的支持,不符合我们生产环境的要求。

3)为了保证某些业务的平滑迁移,我们开发了 StatefulSet/AdvancedStatefulSet 固定 IP 的支持(需要 sticky 调度配合)。

4)定制化了监控和告警。

5)其他一些自定义配置。

我们之前的一篇文章 [2] 对此有较详细的介绍,有兴趣可以移步。下面讨论几个之前介绍较少或者没有覆盖到的主题。


 

2.1 BGP 建连模型

Cilium+BIRD 方案中,以宿主机为界,网络可以大致分为两部分,如图 2-1 所示。

Fig 2-1. High level topology of the Cilium+BGP solution [2]

1)宿主机内部网络:由 Cilium(及内核协议栈)负责,职责包括:

  • 为容器创建和删除虚拟网络。

  • 为容器生成、编译和加载 eBPF。

  • 处理同宿主机内容器之间的网络通信。

2)跨宿主机网络:由 BGP(及内核路由模块)负责,职责包括:

  • 与数据中心网络交换路由(PodCIDRs)。

  • 对出宿主机的流量进行路由。

对于跨宿主机部分,需要确定要采用哪种 BGP peering 模型,这个模型解决的问题包括 :

1)BGP agent 的职责,是作为一个全功能路由控制服务,还是仅用作 BGP speaker?

2)宿主机和数据中心的哪些设备建立 BGP 邻居?

3)使用哪种 BGP 协议,iBGP 还是 eBGP?

4)如何划分自治域(AS),使用哪种 ASN(自治域系统编号)方案?

取决于具体的网络需求,这套 BGP 方案可能很复杂。基于数据中心网络能提供的能力及实际的需求,我们采用的是一种相对比较简单的模型:

1)每台 node 运行 BIRD,仅作为 BGP speaker。

  • Node 在上线时会自动分配一个 /25 或 /24 的 PodCIDR。

  • BIRD 和数据中心网络中的两个邻居建立 BGP 连接。

  • BIRD 将 PodCIDR 通告给邻居,但不从邻居接受任何路由。

2)数据中心网络只从 node 接受 /25 或 /24 路由宣告,但不向 node 宣告任何路由。

3)整张网络是一张三层纯路由网络(pure L3 routing network)。

这种模型的简单之处在于:

1)数据中心网络从各 node 学习到 PodCIDR 路由,了解整张网络的拓扑,因此 Pod 流量在数据中心可路由。

2)Node 不从数据中心学习任何路由,所有出宿主机的流量直接走宿主机默认路由(到数据中心网络),因此宿主机内部的路由表不随 node 规模膨胀,没有路由条目数量导致的性能瓶颈。

Fig 2-2. BGP peering model in 3-tier network topology

在路由协议方面:

  • 老数据中心基于“接入-汇聚-核心”三级网络架构,如图 2-2 所示,

    • 节点和核心交换机建立 BGP 连接。

    • 使用 iBGP 协议交换路由。

  • 新数据中心基于 Spine-Leaf 架构,

    • 节点和直连的 Leaf 交换机(置顶交换机)建立 BGP 连接。

    • 使用 eBGP 协议交换路由。

我们已经将这方面的实践整理成文档,见 Using BIRD to run BGP [3]。


 

2.2 典型流量转发路径:从 Pod 访问 Service

来看一下在这套方案中,典型的流量转发路径。

假设从一个 Pod 内访问某个 Service,这个 Service 的后端位于另一台 Node,如下图所示:

Fig 2-3. Traffic path: accessing Service from a Pod [4]

主要步骤:

1)在 Node1 上的 Pod1 里面访问某个 Service (curl <ServiceIP>:<port>)。

2)eBPF 处理 Service 抽象,做客户端负载均衡:选择某个后端,然将包的目的 IP 地址从 ServiceIP 换成后端 PodIP(即执行 DNAT)。

3)内核路由决策:查询系统路由表,根据包的目的 IP 地址确定下一跳;对于这个例子匹配到的是默认路由,应该通过宿主机网卡(或 bond)发送出去。

4)包到达宿主机网卡(bond),通过默认路由发送到宿主机的默认网关(配置在数据中心网络设备上)。

5)数据中心网络对包进行路由转发。由于此前数据中心网络已经从各 Node 学习到了它们的 PodCIDR 路由,因此能根据目的 IP 地址判断应该将包送到哪个 Node。

6)包达到 Node 2 的网卡(bond):一段 eBPF 代码负责提取包头,根据 IP 信息找到 另一段和目的 Pod 一一对应的 eBPF 代码,然后将包交给它。

7)后一段 eBPF 代码对包执行 入向策略检查,如果允许通过,就将包交给 Pod4。

8)包到达 Pod4 的虚拟网卡,然后被收起。

我们有一篇专门的文章详细介绍整个过程,见 [4]。


 

2.3 集群边界 L4/L7 入口解决方案

在 Kubernetes 的设计中,ServiceIP 只能在集群内访问,如果要从集群外访问 Service 怎么办?例如,从 baremetal 集群、OpenStack 集群,或者其他 Kubernetes 集群访问?这属于集群边界问题。

K8s 为这些场景提供了两种模型:

1)L7 模型:称为 Ingress,支持以 7 层的方式从集群外访问 Service,例如通过 HTTP API 访问。

2)L4 模型: 包括 externalIPs Service、LoadBalancer Service,支持以 4 层的方 式访问 Service,例如通过 VIP+Port。

但是,K8s 只提供了模型,没提供实现,具体的实现是留给各厂商的。例如,假如你使用的是 AWS,它提供的 ALB 和 ELB 就分别对应上面的 L7 和 L4 模型。在私有云,就需要我们自己解决。

我们基于 Cilium+BGP+ECMP 设计了一套四层入口方案。本质上这是一套四层负载均衡器(L4LB),它提供一组 VIP,可以将这些 VIP 配置到 externalIPs 类型或 LoadBalancer 类 型的 Service,然后就可以从集群外访问了。

Fig 2-4. L4LB solution with Cilium+BGP+ECMP [5]

基于这套四层入口方案部署 istio ingress-gateway,就解决了七层入口问题。从集群外访问时,典型的数据转发路由如下:

Fig 2-5. Traffic path when accesing Service from outside the Kubernetes cluster [5]

我们之前有篇博客详细介绍这个主题,见 [5]。


三、云原生安全尝试

Cilium 提供的两大核心能力:

1)基于 eBPF 的灵活、动态、高性能网络。

2)L3-L7 安全策略:CiliumNetworkPolicy 是对 K8s 的 NetworkPolicy 的扩展。

在落地了网络功能后,针对安全需求,我们在尝试落地基于 Cilium 的安全。


 

3.1 Cilium 安全策略

首先来看一个简单的例子,看看 CiliumNetworkPolicy (CNP) 长什么样 [6]:

apiVersion: "cilium.io/v2"kind: CiliumNetworkPolicymetadata:  name: "clustermesh-ingress-l4-policy"  description: "demo: allow only employee to access protected-db"spec:  endpointSelector:    matchLabels:      app: protected-db  ingress:  - toPorts:    - ports:      - port: "6379"        protocol: TCP    fromEndpoints:      - matchLabels:          app: employee


上面的 yaml:



1)创建一个 CNP,可以指定 name 和 description 等描述字段。

2)对带 app=protected-db 标签(labels)的 endpoints(pods)执行这个 CNP。

3)在执行 CNP 的时候,只对入向(ingress)流量做控制,并且限制如下流量来源:

    • 协议是 TCP,并且端口是 6379.

    • 流量来自带 app:employee labels 的 endpoints(pods)。

    可以看到,CNP 非常灵活,使用起来也很方便。但真实世界要远比想象中复杂,要真正落地 Cilium 安全策略,还存在很多挑战。


     

    3.2 落地挑战

    下面举两个例子,相信这些问题在很多公司都需要面对,并不是我们独有的。


    多集群问题

    如果你所有的应用都运行在 Cilium 集群中,并且客户端和服务端都收敛到一个集群(大部分公有云厂商都推荐一个 region 只部署一套 K8s 集群,所有访问都收敛到这套集群),那落地起来会简单很多。

    但大部分有基础设施演进的公司恐怕都不满足这个假设,实际的情况很可能是:业务分散在多个集群。


    混合基础设施

    多集群还不是最大的问题,因为业界多少还有一些多集群解决方案。

    更严重的一个问题是:业务不仅分散在不同集群,而且在不同平台。例如对我们来说,现在有:

    1)Bare metal 集群

    2)OpenStack 集群

    3)基于 Neutron+OVS 的 Kubernetes 集群

    4)基于 Cilium+BGP 的 Kubernetes 集群

    虽然我们计划将所有容器从 Neutron 网络迁移到 Cilium 网络,但另外两种,bare metal 和 OpenStack 集群,还是会长期存在的,虽然规模可能会逐渐减小。


     

    3.3 整体方案设计

    我们目前的一个整体方案:在服务端容器做入向安全策略,客户端可以来自任何平台、任何集群:

    1)这将范围框定到了已经在 Cilium 网络的服务端容器,是一个不错的起点。

    2)传统网络里的服务端容器,会逐渐迁移到 Cilium 网络。

    3)BM 和 VM 的服务端实例,第一阶段先不考虑安全控制。

    那接下来的问题就是:服务端如何具备对所有类型、所有集群的客户端进行限制的能力?我们的解决方案是:

    1)首先,用 Cilium 提供 ClusterMesh 将已有 Cilium 集群连接起来;

    2)然后,“扩展” ClusterMesh,让它能感知到 mesh 之外的 endpoints,即 BM、BM 和 Neutron Pods。

    下面分别解释这两点。


    3.3.1 用 ClusterMesh 做 Cilium 集群互连

    Fig 3-1. Vanilla Cilium ClusterMesh [6]

    ClusterMesh [7] 是 Cilium 自带的一个多集群解决方案。如果所有应用都在 Cilium 集群 里,那这种方式可以解决跨集群的安全策略问题,即,application 实例可以分布在不同的集群。

    这样说来,使用 ClusterMesh 似乎是理所当然的,但其实它并不是我们当初的第一选择。因为多集群还有其他方案,本质上做的事情就是如何在多个集群之间同步元数据,并且做到集群变动的实时感知。

    1)出于多个内部需求,当时有考虑自己做这样一套元数据同步方案,它能解决包括 Cilium 在内的多个需求。

    2)并未看到业界大规模使用 ClusterMesh 的案例,所以对它的可用性还存疑。

    但后来综合对比了几种选项之后,觉得 ClusterMesh 还是值得尝试的。

    关于 ClusterMesh 的实地(功能)测试,可以参考我们之前的一篇博客 [6]。


    3.3.2 扩展 ClusterMesh,感知 mesh 外实例

    这里的外部实例(external endpoints)包括 Neutron Pod、VM、BM。

    基于对 Cilium 的理解,我们判断只要将外部实例信息以 Cilium 能感知的方式(格式)同步到 Cilium 集群,那在入向(inbound),Cilium 对这些实例的控制能力,与对原生 Cilium 实例的控制能力并无区别。换句话说,我们“骗一下” Cilium,让它认为这些实例都是 Cilium endpoints/pods。

    为此我们开发了一个组件,使得 OpenStack 平台、Bare metal 平台和Neutron-powered Kubernetes 平台能将它们的实例创建/销毁/更新信息同步更新到 Cilium 集群,如下图所示:

    Fig 3-2. Proposed security solution over hybrid infrastructures

    结合 3.3.1 & 3.3.2,在这套“扩展之后的” ClusterMesh 中,每个 Cilium agent 都对全局实例(container/vm/bm)有着完整的、一致的视图,因此能在 Cilium Pod 的入向对各种类型的客户端做安全控制。目前计划支持的是 L3-L4 安全策略,未来考虑支持 L7。

    这套方案已经通过了功能验证,正在进行正式开发和测试,计划年底开始灰度上线。


    四、总结

    本文总结了我们在基于 Cilium 的云原生网络和云原生安全方面的一些探索和实践。更多技术细节,可参考下面一些链接。


    参考文献

    [1] Ctrip Network Architecture Evolution in the Cloud Computing Era

    [2] Trip.com: First Step towards Cloud Native Networking.

    [3] Cilium Doc: Using BIRD to run BGP

    [4] Life of a Packet in Cilium: Discovering the Pod-to-Service Traffic Path and BPF Processing Logics

    [5] L4LB for Kubernetes: Theory and Practice with Cilium+BGP+ECMP

    [6] Cilium ClusterMesh: A Hands-on Guide

    [7] Cilium Doc: clustermesh

    【推荐阅读】

     “携程技术”公众号

      分享,交流,成长

    《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 12数据中心中的EVPN 研究数据中心如何进行网络虚拟化配置之前,我们需要熟悉 EVPN的基础知识。如前所述,EVPN是一种为网络虚拟化提供控制平面的解决方案。用最简单的术语来说,EVPN是一种连接被三层网络分隔的二层网段的技术。EVPN通过在三层网络之上构建出一个叠加的虚拟二层网络来实现此目的。EVPN 使用 BGP 作为控制协议,在数据中心中使用 VXLAN 进行数据包封装。 阅读详情

    相关推荐

    Cilium + ebpf 系列文章- (六)Cilium-BGP

    CiliumBGPPeerConfig配置对等连接的行为,可以引用一个或多个CiliumBGPAdvertisement资源(使用选择器)可以是pod也可以是svc的外部地址。CiliumBGPPeerConfig 这个主要是管理建立邻居的特殊参数。这个命令通过指定这些参数来定制 Cilium 的安装和配置,以满足特定的网络需求。这个命令用于安装 Cilium,并配置一些特定的参数。*但是上面举的例子只是通告了pod的cidr,即pod的ip地址可以路由。*上面就是典型的数据中心BGP架构。

    博然的宝藏库 943

    如何配置 Cilium 和 BGP 协同工作?

    ❝本文转自 Yoaz 的博客,原文:https://lqingcloud.cn/post/cilium-03/,版权归原作者所有。欢迎投稿,投稿请添加微信好友:cloud-native-yang背景官方提供了多篇文档说明如何配置 Cilium 和 BGP 协同工作,本文主要对以下部分功能进行验证:Using BIRD to run BGP[1]Using kube-router to run BG...

    云原生实验室 1683

    Cilium动手实验室: 精通之旅---9.BGP on Cilium - Lab

    请注意,Cilium 上的 BGP 配置是基于标签的 - 具有匹配标签的 Cilium 托管节点将部署虚拟路由器以实现 BGP 对等连接。这一次,您应该会看到 ToR 设备和 Cilium 节点之间的会话不再是“活动”(即尝试建立对等连接失败),而是已启动(您将在。在以下任务中,我们将配置 Cilium 以在同类节点上运行 BGP,并与 ToR 设备建立 BGP 对等连接。列中显示(如果是这种情况,它将显示会话已启动多长时间 - 在我们的例子中,它已启动了 00:01:46)。安装通常需要几分钟。

    Q先生 966

    如何快速让 Cilium 和 BGP 协同工作

    公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !背景官方提供了多篇文档说明如何配置 Cilium 和 BGP 协同工作,本文主要对以下部分功能进行验证:Using BIRD to run BGP[1]Using kube-router to run BGP[2]BGP[3]Cilium BGP Control Plane[4]为了模拟支持 BGP 的网络环境,文中...

    easylife206的专栏 768

    Uncertainty-Aware Mean Teacher(UA-MT)

    本文提出了一种新的基于不确定性的半监督学习框架(UA-MT),通过额外利用未标记的数据从3D MR图像中分割左心房。具体地说,本文建立了一个教师模型和一个学生模型,学生模型通过最小化标注数据上的分割监督损失和所有输入数据上的与教师模型预测输出的一致性损失进行优化。如果没有未标记输入中的注释,教师模型的预测目标可能不可靠且有噪声。:在估计不确定性 U 的指导下,我们过滤掉相对不可靠**(高不确定性),整个体积** U 的不确定性**是 {u} ∈ RH×W ×D。过滤掉高不确定性的,也就是熵大于某个值的。

    Alexa_的博客 1869

    一份针对零基础学习AI Agent详细学习计划

    以下是针对零基础学习者制定的AI Agent详细学习计划,结合最新行业动态和实用资源推荐,帮助你从入门到进阶系统掌握核心技能

    sexy19910923的博客 1904

    使用 Containerlab + Kind 快速部署 Cilium BGP 环境

    1 前置知识 1.1 Cilium 介绍 Cilium 是一款基于 eBPF 技术的 Kubernetes CNI 插件,Cilium 在其官网上对产品的定位为 “eBPF-based Networking, Observability, Security”,致力于为容器工作负载提供基于 eBPF 的网络、可观察性和安全性的一系列解决方案。Cilium 通过使用 eBPF 技术在 Linux 内部动态插入一些控制逻辑,可以在不修改应用程序代码或容器配置的情况下进行应用和更新,从而实现网络、可观察性和安全性相

    cr7258的博客 2872

    python实现DoIP基本通信(收发报文)

    python实现DoIP基本通信(收发报文)

    天赐好车的博客 895

    如何使用 Containerlab 和 Kind 快速部署 Cilium BGP 实验环境

    公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !1 前置知识1.1 Cilium 介绍Cilium 是一款基于 eBPF 技术的 Kubernetes CNI 插件,Cilium 在其官网上对产品的定位为“eBPF-based Networking, Observability, Security”,致力于为容器工作负载提供基于 eBPF 的网络、可观察性和安全...

    easylife206的专栏 1115

    Android-Zygote进程的诞生—从init到Zygote启动

    Android Zygote进程启动流程解析 Android系统的Zygote进程是所有应用进程的父进程,由init进程创建。启动流程分为: 内核阶段:加载init进程(PID=1) init进程阶段: 挂载基础文件系统(tmpfs、proc等) 设置SELinux安全策略 解析init.rc配置文件 Zygote启动:init进程通过app_process启动Zygote,预加载系统资源 SystemServer:Zygote fork出系统服务进程 关键点: init是用户空间第一个进程......

    保持专注,保持热爱 637

    单光子雪崩二极管(SPAD):原理、极高增益机制与微光探测解析

    本文系统阐述了单光子雪崩二极管(SPAD)的工作原理及其在弱光探测中的应用。SPAD通过工作在盖革模式下的碰撞离化效应实现单光子探测,其核心机理包括:1)采用p+-n-n+结构实现高电场分布;2)通过雪崩倍增过程获得10^6量级增益;3)采用主动/被动淬灭机制实现快速恢复。文章详细分析了SPAD的关键性能参数(如光子探测效率、暗计数率等)及其在量子通信、激光雷达等领域的应用优势,揭示了该器件在极微弱光信号探测中的独特价值。

    Fun_LiDAR的博客 1043

    Kubernetes集群的网络性能优化

    Kubernetes集群的网络性能优化是一个综合性的工程问题,需要从网络插件选择、配置优化、监控与告警、安全配置等多个方面进行考虑。通过合理的优化策略和最佳实践,可以显著提高集群的网络性能,为应用提供更加高效、可靠的网络环境。记住,网络性能优化不是一次性配置,而是需要持续优化和改进的过程。只有根据实际需求和网络环境的特点,不断调整和优化网络配置,才能充分发挥集群的网络性能。

    2609_95049439的博客 3846

    深度学习-155-RAG技术之嵌入模型Embedding怎么选

    Embedding技术在大型语言模型中发挥着至关重要的作用。它将文本转化为向量,使模型能够理解和处理复杂的语言信息。通过选择合适的Embedding方法和优化文本匹配策略,我们可以在搜索引擎、问答系统、推荐系统等领域实现高效且精准的文本匹配。

    qq_20466211的博客 405

    Cilium之BGP router模式

    kube-router -> agrs 配置如下: - "--run-router=true" - "--run-firewall=false" - "--run-service-proxy=false" - "--enable-cni=false" - "--enable-pod-egress=false" - "--enable-ibgp=true" - "--enable-overla

    weixin_42562106的博客 1297

    基于单片机设计的智能消防排烟窗控制系统_422

    随着城市化进程的不断加快,高层建筑、大型商业综合体以及地下空间的数量迅速增加,建筑内部结构日趋复杂,一旦发生火灾,烟雾和有毒气体往往比明火更具威胁性。大量研究表明,在火灾事故中,人员伤亡的主要原因并非直接烧伤,而是由于吸入烟雾及一氧化碳等有毒气体导致窒息。因此,如何在火灾初期快速排烟、降低有害气体浓度,并及时进行预警,成为现代消防系统设计中的关键问题。传统的消防排烟系统多依赖人工操作或简单的联动控制方式,存在响应滞后、自动化程度低、信息反馈不及时等问题。在实际应用中,当火灾发生时,如果不能第一时间开启排烟窗

    368

    am62x A53与R5F通信

    AM62x是Ti的一款异构多核芯片。remoteproc驱动,硬编码(写死)了R5F/M4F固件的名字,这样驱动启动时,就会找硬件编码的固件,下面是其对应关系。值得注意的是,linux内核中的M4F remoteproc驱动启动M4F,而linux内核中的R5F remoreteproc驱动不启动R5F,相反,它attach到已经在boot阶段启动的R5F固件上。在/lib/firmware的真实固件名:,而我们生成的固件名如下所示,没有直接对应的,经确认,.out文件就是我们需要的,重命名后即可。

    鹰之翔 1359

    Cilium 官方文档翻译(10) BGP - kube-router协作通过BGP在集群外传播路由

    本指南介绍如何配置Cilium和kube-router,使kube-router使用BGP协议进行对等路由传播,以及如何配置Cilium进行策略执行和负载平衡。

    煮酒论架构 582

    STM32F407中文手册

    STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

    【Cilium 1.10 重磅发布!】支持 Wireguard, BGP, Egress IP 网关, XDP 负载均衡, 阿里云集成

    作者: 清弦 阿里云技术专家,主要负责ACK 容器网络设计与研发,阿里云开源CNI项目Terway 主要维护者,Cilium Alibaba IPAM 贡献者 本文翻译自Cilium 1.10 发布文档[1]由于译者水平有限,本文不免存在遗漏或错误之处。如有疑问,请查阅原文。以下是译文。 Egress IP Gateway BGP for LoadBalancer VIP 阿里云集成 Wireguard 透明加密 Cilium ARM64 镜像 Cilium CL...

    云原生Serverless的专栏 2594

    SAP B1中文培訓教材_SDK

    公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

    VB摄像头监控

    该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

    使用 Containerlab 搭建 Cilium BGP 环境解析

    ❝本文转自 charlieroro 的博客,原文:https://www.cnblogs.com/charlieroro/p/16712641.html,版权归原作者所有。欢迎投稿,投稿请添加微信好友:cloud-native-yangcontainerLab 的简单用法containerLab[1]支持很多节点[2]和类型[3]设置,相对比较复杂,实际使用中只需要掌握基本的组网即可。安装[4]网...

    云原生实验室 1114

    pscad IEEE标准系统搭建说明

    pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

    Cilium 1.11 发布,带来内核级服务网格、拓扑感知路由....

    原文链接:https://isovalent.com/blog/post/2021-12-release-111 作者:Cilium 母公司 Isovalent 团队 译者:范彬,狄卫华,米开朗基杨 注:本文已取得作者本人的翻译授权! Cilium 项目已逐渐成为万众瞩目之星,我们很自豪能够成为该项目的核心人员。几天前,我们发布了具有诸多新功能的 Cilium 1.11 版本,这是一个令人兴奋的版本。诸多新功能中也包括了万众期待的 Cilium Service Mesh 的 Beta 版本。在本篇.

    KubeSphere 1669

    Flannel、Calico与Cilium网络模式及报文转发机制的深度解析

    Kubernetes作为主流容器编排平台,其网络模型要求每个Pod都拥有唯一的IP地址,并且这些Pod之间可以直接通信。为实现这一目标,出现了多种CNI(Container Network Interface)插件解决方案,其中Flannel、Calico和Cilium是最具代表性的三种。随着eBPF技术的成熟,Cilium正成为越来越多生产环境的选择,特别是在需要高性能网络、高级安全策略和出色可观测性的场景中。然而,对于简单场景或已有BGP基础设施的环境,Calico仍然是优秀的选择。

    2402_86209161的博客 1404

    深入探索 Cilium 的工作机制

    这篇之前写记录的内容,隔了几个月终于想起把笔记完成,作为探索 Cilium 工作原理的入门,也还是 Cilium 冰山一角,像是高级的网络策略、网络加密、BGP 网络、服务网格等方面并没有深入。如果阅读过程中有发现任何问题,也烦请纠正。本文基于 Cilium v1.12 及 Kubernetes v1.25。

    hanfengzxh的博客 789

    Cilium路由模式对比:Overlay与Native Routing选择

    在现代云原生环境中,网络路由模式的选择直接影响着容器网络的性能、可扩展性和运维复杂度。Cilium作为基于eBPF的云原生网络方案,提供了两种主要的路由模式:Overlay(覆盖网络)和Native Routing(原生路由)。本文将深入分析这两种模式的架构差异、适用场景和配置实践,帮助您做出明智的技术选择。 ## 路由模式架构对比 ### Overlay模式(封装模式) ```mermai...

    gitblog_00696的博客 711

    Cilium路由模式深度解析:5大实战场景与性能优化全攻略

    你是否正在为Kuberentes集群的网络性能瓶颈而困扰?在复杂的云原生环境中,Cilium的路由模式选择直接影响着应用的响应速度、资源利用率和运维复杂度。本文将深入剖析Cilium的两种核心路由架构,通过真实测试数据和实战案例,帮助你做出最佳技术决策。 通过本文,你将掌握: - Overlay与Native Routing的底层实现机制差异 - 不同云环境下的最佳配置实践 - 性能瓶颈诊断与优

    gitblog_00031的博客 537

    Cilium 官方文档翻译(11) BGP-结合BIRD运行BGP协议边界路由传播

    BIRD是在Internet网络中通过BGP传播路由数据包协议在类UNIX系统上的开源实现,它是一个守护进程。Cilium 借助BIRD可完成动态路由组网。

    煮酒论架构 1396

    BGP基础

    高级距离矢量协议 属于EGP协议 用于AS间数据传输 无类协议classless BGP报文封装 Layer2 |ipv4|TCP|BGP|FCS 179 帧头 |ip|tcp传输|载荷|帧尾 基于tcp目的端口179源端口随机 只支持单播 建立BGP时只能纯手工 默认不支持ECMP 运用场景(双宿主情况下,内外接多根外线外网) Igp 路由器逐跳 hop-by-hop Egp 一个AS就是一个大路由器 AS-by-AS BGP的三张表 邻居表 ...

    CRTqudong的博客 902
    上一篇: 干货 | 日均5亿字符翻译量,百毫秒内响应,携程机器翻译平台实践
    下一篇: 沙龙回看 | 携程技术沙龙——大数据与AI技术实践
    携程技术
    博客等级 码龄10年 3716粉丝 324原创
    评论 6
    成就一亿技术人!
    拼手气红包6.0元
    还能输入1000个字符
     
     条评论被折叠 查看
    添加红包

    请填写红包祝福语或标题

    个

    红包个数最小为10个

    元

    红包金额最低5元

    当前余额3.43元 前往充值 >
    需支付:10.00元
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付元
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值