Nex 节点进程是 Nex 生态系统的核心。它通过 NATS 暴露一个控制接口 API,客户端应用可通过该接口部署和取消部署工作负载,并查询节点状态以及当前已部署的工作负载。
Nex 节点维护着一个 Firecracker 虚拟机池。工作负载会部署到此池中。我们采用池机制的原因在于,这样可以先配置一定数量的 “预热用” 虚拟机,随时待命以快速响应工作负载需求。这使得我们可以实现极快的工作负载部署速度。
为了维护这个 Firecracker 虚拟机池,Nex 节点需要与已安装的 Firecracker 应用程序以及已安装的 CNI(容器网络初始化)插件进行交互。这些组件都可以通过 nex CLI 的 preflight 命令自动下载并安装。
由于 Nex 节点进程会启动 firecracker 进程,而后者又会尝试使用 CNI 插件,因此该进程几乎总是需要 root 权限。在本地开发时,直接使用 sudo 即可轻松解决权限问题。但在生产环境中,您可能希望创建一个专用的用户上下文来运行 Nex 节点。
单独来看,一个 Nex 节点即可运行数百个函数和服务。当您将 Nex 节点战略性地部署到整个 NATS 基础设施中时,便能构建出一个统一的执行集群,从而具备几乎无限扩展的能力,满足任何规模的需求。