Netreap: 非Kubernetes环境下Cilium管理解决方案
netreap A Cilium controller implementation for Nomad 项目地址: https://gitcode.com/gh_mirrors/ne/netreap
项目介绍
Netreap是一款专为非Kubernetes集群设计的工具,旨在实现类似Cilium Operator的功能,用于跨集群管理Cilium。最初为了清理孤立的Cilium端点而创建,名字意为“网络收割者”,尽管其功能已扩展超出原初设想,但名称得以保留。Netreap特别适用于Nomad环境,能够自动清理不再存在的节点信息以及无服务关联的端点。该项目弥补了Cilium Operator仅限于Kubernetes环境的不足。
技术栈与兼容性
- 支持环境:Nomad, Consul, Cilium v1.12.x 或 v1.13.x
- 关键特性:基于KV存储(默认Consul)的领导选举机制,支持端点协调无需Consul(自v0.2.0起)。
快速启动
环境准备
-
安装必备软件:
- 设置Consul集群或单一服务器。
- 部署Nomad集群。
- 准备Cilium所需的环境,包括CNI插件。
-
配置Cilium(示例为使用Docker运行Cilium代理):
[Unit] Description=Cilium Agent After=docker.service Requires=docker.service ... [Service] Restart=always ExecStart=/usr/bin/docker run --rm ... cilium/cilium:v1.13.1 cilium-agent ...
-
部署Netreap作为系统作业到Nomad中:
job "netreap" { datacenters = ["dc1"] type = "system" constraint { attribute = "$node.class", value = "infra" } group "netreap" { task "netreap" { driver = "docker" config { image = "ghcr.io/cosmonic/netreap:0.2.0" network_mode = "host" volumes = ["/var/run/cilium:/var/run/cilium"] } } } }
命令执行示例
确保在Nomad集群上提交上述作业文件,并适当设置环境变量和权限以支持Consul和Nomad的ACLs,如果启用的话。
应用案例与最佳实践
- 网络清理自动化:Netreap定期检查并删除不再有效的Cilium端点,保持网络状态清洁,尤其适合动态扩缩容频繁的场景。
- Cilium策略同步:通过单一Consul键,Netreap同步Cilium政策至所有节点,无需依赖CRDs(如Kubernetes所用),简化了非Kubernetes环境下的政策管理。
典型生态项目
- 在使用Nomad和Consul搭建的云原生环境中,Netreap是维持Cilium网络稳定性的关键组件,确保服务间通信的安全性和效率。
- 结合GitOps流程,可以将Cilium策略作为版本化配置管理,利用Netreap自动部署更新,强化安全策略的一致性和即时性。
以上便是Netreap的基本介绍、快速部署步骤及应用实例概览。针对特定的部署需求和环境差异,建议详细阅读项目GitHub页面上的文档,确保遵循最佳实践进行部署与运维。
netreap A Cilium controller implementation for Nomad 项目地址: https://gitcode.com/gh_mirrors/ne/netreap