第 3 章 eBPF manager Operator
3.1. 关于 eBPF Manager Operator 复制链接链接已复制到粘贴板!
eBPF Manager Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
3.1.1. 关于扩展 Berkeley Packet Filter (eBPF) 复制链接链接已复制到粘贴板!
eBPF 扩展原始 Berkeley Packet 过滤器,用于高级网络流量过滤。它充当 Linux 内核中的虚拟机,允许您运行沙盒程序来响应网络数据包、系统调用或内核功能等事件。
3.1.2. 关于 eBPF Manager Operator 复制链接链接已复制到粘贴板!
eBPF Manager 简化了 Kubernetes 中的 eBPF 程序的管理和部署,以及增强使用 eBPF 程序的安全性。它利用 Kubernetes 自定义资源定义 (CRD) 来管理打包为 OCI 容器镜像的 eBPF 程序。这种方法有助于通过限制特定用户可部署的程序类型来划分部署权限并增强安全性。
eBPF Manager 是一个软件堆栈,用于在 Kubernetes 中管理 eBPF 程序。它有助于在 Kubernetes 集群中对 eBPF 程序进行加载、卸载、修改和监控。它包括守护进程、CRD、代理和 Operator:
- bpfman
- 通过 gRPC API 管理 eBPF 程序的系统守护进程。
- eBPF CRD
- 一组 CRD,如 XdpProgram 和 TcProgram 用于加载 eBPF 程序,以及一个代表载入程序状态的由 bpfman 生成的 CRD (BpfProgram)。
- bpfman-agent
- 在 daemonset 容器中运行,确保每个节点上的 eBPF 程序处于所需的状态。
- bpfman-operator
- 使用 Operator SDK 管理集群中的 bpfman-agent 和 CRD 的生命周期。
eBPF Manager Operator 提供以下功能:
- 通过一个控制的守护进程来集中 eBPF 程序加载功能以增强安全性。eBPF Manager 具有升级的特权,因此应用程序不需要这些权限。 eBPF 程序控制遵循标准的 Kubernetes 基于角色的访问控制 (RBAC)机制,它可以允许或拒绝应用程序对用于管理 eBPF 程序加载和卸载的不同 eBPF Manager CRD 的访问。
- 提供对活跃 eBPF 程序的详细可见性,提高了您在系统中调试问题的能力。
- 可以使来自不同源的多个 eBPF 程序共存,使用 libxdp 等协议用于 XDP 和 TC 程序,从而增强了互操作性。
- 简化 Kubernetes 中 eBPF 程序的部署和生命周期管理。开发人员可以专注于程序交互,而不是生命周期管理,支持现有 eBPF 库,如 Cilium、libbpf 和 Aya。