用Spinifex在裸机上运行EKS 笔记

用Spinifex在裸机上运行EKS

Kubernetes 是 AWS 广受欢迎的托管服务 EKS,但其仅能在 AWS 生态体系内运行。此前,需要在自有硬件或隔离环境中运行 Kubernetes 的组织,在使用自托管发行版时面临巨大的运营负担。Spinifex 提供了一项新解决方案,通过在客户管理的底层基础设施上实现 EKS API,使团队能够在裸金属服务器或托管设施中使用熟悉的 EKS 工具和流程,例如 CLI 命令和 Terraform 配置。当通过 Spinifex EKS API 创建集群时,会在 Spinifex 托管的虚拟机中部署一个托管控制平面。该控制平面通过负载均衡器进行访问,并采用与 AWS EKS 相同的 API 访问入口模型进行身份验证。Spinifex 负责底层控制平面基础设施,消除了用户管理 etcd 集群或控制平面节点的需求。节点组的 provisioning 方式类似,由 Spinifex 管理工作节点虚拟机的创建并将其加入集群。工作节点镜像由 Spinifex 管理,简化了用户对操作系统维护和附加组件更新的负担。节点组的安全组会自动创建和管理,简化了工作负载的网络访问配置。在创建集群之前,用户必须确保已注册 Spinifex eks-node 镜像,已配置带有子网的 VPC,并为容器镜像拉取配置出站访问权限。此外,为集群和节点配置正确的 IAM 角色也是必要前提。集群创建可通过指向 Spinifex 配置文件的标准 AWS CLI 命令实现,authenticationMode=API 标志为必需项。控制平面激活后,可使用 aws eks create-nodegroup 创建节点组。使用 kubectl 进行身份验证时,采用标准的 AWS EKS 令牌机制,通过调用 aws eks get-token 对发送至 Spinifex 网关的请求进行签名。Terraform 配置可通过覆盖 AWS 提供商端点来适配 Spinifex。其他所有 Terraform 资源保持不变,从而实现现有 EKS 基础设施代码的无缝迁移。Spinifex 强制要求使用 API 身份验证模式,要求通过访问入口管理集群访问,这是一种比旧版 aws-auth ConfigMap 更安全的方法。与 AWS EKS 的关键区别在于基础设施管理:虽然 Spinifex 管理控制平面虚拟机,但用户需负责物理服务器、网络和存储。这种权衡对于具有特定需求的组织(如需要 GPU 加速、隔离环境或数据主权要求)具有优势。Spinifex 提供文档、Terraform 示例和免费沙箱环境,以促进采用。