2.2.1通过Golang+eBPF实现无侵入应用可观测的可编程能力使其能够内核中完成包的处理和转发,而且可以添加额外扩展能力。 观测和跟踪 将 eBPF 程序附加到跟踪点以及内核和用户应用探针点的能力,使得应用程序和系统本身的 运行时行为具有前所未有的可见性 From:https://juejin.cn/post/7280746515525156918 安全 看到和理解所有系统调用的基础上,将其与所有网络操作的数据包和套接字级视图相结合,通 过检测来阻止恶意攻击行为,如 依赖内核的头包 bpf 程序跟其他的用户空间的程序没有太大区别 编译成二进制文件,可以适应不同运行环境 libbpf 扮演bpf程序装载机角色 开发人员只需要关注bpf程序的正确性和性能,不 需要关注其他依赖关系 通过Golang加载eBPF程序 01. 副标题 func loadSync() error { // Allow the current process -D__TARGET_ARCH_x86 1、安装环境 2、写好bpf.c和bpf.h,放到指定目录 3、go generate 获取转换后的go文件 构建完整的应用可观测系统 第五部分 架构感知 JMeter testdemo1 testdemo2 Mysql Redis Kafka hcmine 节点 属性 关系 架构感知,节点和关系以及他们的属性,能够正确地反应当前运行的网络关系,帮助0 码力 | 29 页 | 3.83 MB | 1 年前3
Cilium的网络加速秘诀https://cilium.io https://github.com/cilium cilium是 kubernetes 的 CNI 网络解决方案,创新采用了 eBPF datapath,为 kubernetes网络和 linux 社区的 eBPF 发展,启动了 最要的推动作用。 截止 2021.10 ,cilium github 项目已有 9.3K star,Contributors 316位 cilium的特色功能: kernel network stack node 加速跨节点pod间通信 pod在跨节点通 信的场景下, cilium 借助 eBPF redirect 能力,帮 助数据包在主机物 理网卡和pod虚拟 网卡之间快速转发, 能够完全 bypass 内核协议族的处理。 在某测试场景下, 跨节点间的 pod 通 信的 tcp 性能,比 node间应用通信的 tcp 性能还稍高 woker 6ms,而cilium的延时为 0.3ms XDP 加速南北向 nodePort 访问 cilium 借助 eBPF 程序 ,能快速完 成 nodePort 、 LoadBalancer service 的解析和转发,其转发性能能比肩 DPDK 技术,且能节省大量CPU资源 当 PPS 压力越大,提升效果越发显 著,相比 kube-proxy,测量得出以下 效果: 1. TC 转发方式,在10Mpps input压0 码力 | 14 页 | 11.97 MB | 1 年前3
Cilium v1.5 DocumentationProvides a simple tutorial for running a small Cilium setup on your laptop. Intended as an easy way to get your hands dirty applying Cilium security policies between containers. Concepts: Describes the components to filter on individual applica�on protocol requests such as: Allow all HTTP requests with method GET and path /public/.* . Deny all other requests. Allow service1 to produce on Ka�a topic topic1 and es- networking/service/] Getting Started Guides The following is a list of guides that help you get started with Cilium. The guides cover the installa�on and then dive into more detailed topics such0 码力 | 740 页 | 12.52 MB | 1 年前3
Cilium v1.6 DocumentationProvides a simple tutorial for running a small Cilium setup on your laptop. Intended as an easy way to get your hands dirty applying Cilium security policies between containers. Concepts: Describes the components to filter on individual application protocol requests such as: Allow all HTTP requests with method GET and path /public/.*. Deny all other requests. Allow service1 to produce on Kafka topic topic1 and service2 ces-networking/service/] Getting Started Guides The following is a list of guides that help you get started with Cilium. The guides cover the installation and then dive into more detailed topics such0 码力 | 734 页 | 11.45 MB | 1 年前3
Cilium v1.7 DocumentationProvides a simple tutorial for running a small Cilium setup on your laptop. Intended as an easy way to get your hands dirty applying Cilium security policies between containers. Concepts: Describes the components to filter on individual application protocol requests such as: Allow all HTTP requests with method GET and path /public/.*. Deny all other requests. Allow service1 to produce on Kafka topic topic1 and service2 ces-networking/service/] Getting Started Guides The following is a list of guides that help you get started with Cilium. The guides cover the installation and then dive into more detailed topics such0 码力 | 885 页 | 12.41 MB | 1 年前3
Cilium v1.8 DocumentationProvides a simple tutorial for running a small Cilium setup on your laptop. Intended as an easy way to get your hands dirty applying Cilium security policies between containers. Concepts: Describes the components to filter on individual application protocol requests such as: Allow all HTTP requests with method GET and path /public/.*. Deny all other requests. Allow service1 to produce on Kafka topic topic1 and service2 ces-networking/service/] Getting Started Guides The following is a list of guides that help you get started with Cilium. The guides cover the installation and then dive into more detailed topics such0 码力 | 1124 页 | 21.33 MB | 1 年前3
Cilium v1.9 DocumentationProvides a simple tutorial for running a small Cilium setup on your laptop. Intended as an easy way to get your hands dirty applying Cilium security policies between containers. Concepts: Describes the components com/isovalent/invite/j4maqox5r1h5] in a live environment is also available for users looking for a way to quickly get started and experiment with Cilium. Getting Started Introduction to Cilium & Hubble What is Cilium to filter on individual application protocol requests such as: Allow all HTTP requests with method GET and path /public/.*. Deny all other requests. Allow service1 to produce on Kafka topic topic1 and service20 码力 | 1263 页 | 18.62 MB | 1 年前3
Cilium v1.10 DocumentationProvides a simple tutorial for running a small Cilium setup on your laptop. Intended as an easy way to get your hands dirty applying Cilium security policies between containers. Concepts: Describes the components com/isovalent/invite/j4maqox5r1h5] in a live environment is also available for users looking for a way to quickly get started and experiment with Cilium. Getting Started Introduction to Cilium & Hubble What is Cilium to filter on individual application protocol requests such as: Allow all HTTP requests with method GET and path /public/.*. Deny all other requests. Allow service1 to produce on Kafka topic topic1 and service20 码力 | 1307 页 | 19.26 MB | 1 年前3
Cilium v1.11 DocumentationProvides a simple tutorial for running a small Cilium setup on your laptop. Intended as an easy way to get your hands dirty applying Cilium security policies between containers. Concepts: Describes the components com/isovalent/invite/j4maqox5r1h5] in a live environment is also available for users looking for a way to quickly get started and experiment with Cilium. Getting Started Introduction to Cilium & Hubble What is Cilium to filter on individual application protocol requests such as: Allow all HTTP requests with method GET and path /public/.*. Deny all other requests. Allow service1 to produce on Kafka topic topic1 and service20 码力 | 1373 页 | 19.37 MB | 1 年前3
Steering connections to sockets with BPF socket lookup hookbpf_sk_release(sk); return err ? SK_DROP : SK_PASS; } is echo service configured on this port? get echo server socket dispatch the packet to echo server Load echo_dispatch program $ make echo_dispatch 127.0.0.1:7777 0.0.0.0:* users:(("nc",pid=1289,fd=3))⏎ uid:1000 ino:22797 sk:1 <-> Get another socket file descriptor 1. pass FD with SCM_RIGHTS cmsg - see unix(7) man page 2. inherit pidfd_open(1289, 0) = 3 pidfd_getfd(3, 3, 0) = 4 bpf(BPF_OBJ_GET, {pathname="/home/vagrant/bpffs/echo_socket", …}, …) = 5 bpf(BPF_MAP_UPDATE_ELEM, {map_fd=5, key=0x7fff9c4e0b140 码力 | 23 页 | 441.22 KB | 1 年前3
共 15 条
- 1
- 2













