Kubernetes 集成
VergeOS 通过 CSI 存储驱动程序和云控制器管理器提供原生 Kubernetes 集成,为运行在 VergeOS VM 上的集群提供持久存储、节点生命周期管理和负载均衡器。
概述
VergeOS 通过 CSI 存储驱动和 Cloud Controller Manager(CCM)提供原生 Kubernetes 集成。这些组件将运行在 VergeOS VM 上的任何 Kubernetes 集群连接到基础 VergeOS 平台——无论是通过 Rancher、kubeadm 还是任何其他方式——部署的。
前提条件
运行在 VergeOS VM 上的 Kubernetes 集群(RKE2、K3s、kubeadm 等)
VergeOS API 密钥(在用户设置中生成)
kubectl和helmCLI 工具可访问集群的 kubeconfig
CSI 驱动
容器存储接口(CSI)驱动允许 Kubernetes Pod 申请并挂载 VergeOS 存储作为持久卷。它将存储操作直接委托给 VergeOS API,并利用 vSAN 发挥其设计用途——重复数据删除、多层级放置和分布式冗余。
存储后端
CSI 驱动支持两个后端,由一个 Go 二进制文件提供:
NAS
ReadWriteMany
运行在 VergeOS NAS 服务上的 EXT4 卷,通过 NFS 暴露
块
ReadWriteOnce
通过 vSAN 热插到 VergeOS VM 的虚拟机磁盘
块存储池 VM
对于块存储,在 VergeOS 中创建一个名为 k8spool的空 VM。它永远不需要启动——只需保存空闲块磁盘即可。该 VM 的 ID 会在安装期间传递给 Helm chart。
安装
CSI 驱动以 Helm chart 的形式从 verge-io Helm 仓库发布,可通过 Helm CLI 或 Rancher Apps UI 在下游集群中安装。有关 chart 详情、Helm 值和配置选项,请参见 文档和资源 下文。
云控制器管理器
Cloud Controller Manager(CCM)是 VergeOS 的标准 Kubernetes 云提供商接口。它负责节点生命周期管理和负载均衡器的配置。
功能
节点管理 —— 从 VergeOS VM 中填充 Kubernetes 节点元数据(provider ID、实例类型、内部 IP)。检测 VM 是否存在以及电源状态,以进行节点生命周期管理。
负载均衡 —— 为
type: LoadBalancer类型服务配置 VergeOS VNet NAT/转换规则。自动从可配置池中分配 IP,并将服务端口映射到节点端口。
节点生命周期工作原理
CCM 实现 Kubernetes 的 InstancesV2 接口:
InstanceMetadata —— 将 Kubernetes 节点解析到一个 VergeOS VM(按 provider ID 或名称),然后返回 provider ID(
vergeos://<vm-id>)、实例类型(<cpu>cpu-<ram>mb),以及来自 VM 网卡的内部 IP 地址InstanceExists —— 检查底层 VM 是否仍然存在于 VergeOS 中
InstanceShutdown —— 报告 VM 是否已关闭电源
负载均衡工作原理
CCM 实现 Kubernetes 的 LoadBalancer 接口,使用 VergeOS VNet 规则:
EnsureLoadBalancer —— 从池中分配一个 IP,然后为每个服务端口创建一条 VNet NAT 规则。规则会转换
<allocated-ip>:<port>设置为<node-ips>:<nodePort>。调用ApplyRules以激活。UpdateLoadBalancer —— 当节点变更时,更新现有规则上的目标 IP
EnsureLoadBalancerDeleted —— 删除该服务的所有 VNet 规则并应用更改
安装
CCM 与 CSI 驱动一起以 Helm chart 的形式发布。可通过 Helm CLI 或在下游集群上的 Rancher Apps UI 安装。有关 chart 详情和配置选项,请参见 文档和资源 下文。
Cluster Autoscaler
Kubernetes Cluster Autoscaler 可与通过 Rancher部署的 VergeOS 后端集群一起工作。它会根据处于待定状态的 Pod 资源请求自动调整池中的节点数量——当 Pod 无法调度时扩容,当节点利用率不足时缩容。请参见 文档和资源 下文中的上游项目链接。
工作原理
自动伸缩器使用 Rancher 的 API 来管理节点池:
扩容 —— 当 Pod 因资源不足而处于待定状态时,自动伸缩器会增加节点池大小。随后 Rancher 使用 Docker Machine 驱动来部署新的 VergeOS VM。
缩容 —— 当节点在可配置时间内利用率不足时,自动伸缩器会对其进行封锁、驱逐并移除。驱动会删除底层的 VergeOS VM。
总结
VergeOS 提供三个可与运行在 VergeOS VM 上的任何集群协同工作的 Kubernetes 组件:
CSI 驱动 —— 通过 VergeOS NAS(ReadWriteMany)和 vSAN 块存储(ReadWriteOnce)提供持久卷
云控制器管理器 —— 节点生命周期管理和
LoadBalancer由 VergeOS VNet 规则支持的服务Cluster Autoscaler —— 为 Rancher 部署的集群自动进行节点池扩缩容
所有组件都以 Helm chart 的形式从 verge-io 仓库发布,并可通过 Helm CLI 或 Rancher Apps UI 安装。
后续步骤
刚开始在 VergeOS 上使用 Rancher?请参阅 Rancher 集成 指南,了解集群部署、模板 VM 准备和节点驱动设置。
已经有运行中的集群?添加 Helm 仓库并浏览可用 chart:
访问下方项目仓库,获取 chart 值、配置参考和发行说明。
文档和资源
容器存储接口驱动
Helm chart 仓库
上游集群自动伸缩器
支持
如果你遇到问题或有功能请求,请在相关的 GitHub 仓库中提交 issue:
最后更新于
这有帮助吗?