Rancher 集成
VergeOS 通过 Docker Machine 节点驱动和 UI 扩展与 Rancher 集成,使用户可从 Rancher 界面在 VergeOS 上配置和管理 RKE2/K3s 集群。
概述
VergeOS 可与 Rancher 通过 Docker Machine 节点驱动和 UI 扩展。结合起来,这些组件使我们能够直接从 Rancher 界面在 VergeOS 基础设施上配置和管理 RKE2/K3s 集群。
将 VergeOS 虚拟机作为 Kubernetes 节点进行配置
向 Rancher 添加 VergeOS 云凭据和机器配置
一旦集群运行起来, Kubernetes 集成 组件(CSI 驱动和云控制器管理器)提供持久存储和节点生命周期管理——这些功能适用于 VergeOS 上的任何 Kubernetes 集群,而不仅仅是由 Rancher 配置的集群。
先决条件
具有 API 访问权限的 VergeOS 环境
已安装 Rancher Server(v2.10+)
运行 Ubuntu 24.04 且已安装 cloud-init 的模板虚拟机
VergeOS API 密钥(在用户设置中生成)
kubectl和helmCLI 工具
Docker Machine 驱动
Docker Machine 驱动是 Rancher 集成的基础。它通过 VergeOS API 管理完整的虚拟机生命周期——克隆模板虚拟机、通过 cloud-init 注入 SSH 密钥,以及在配置集群时创建机器。当集群被移除时,驱动会自动删除它创建的虚拟机。
工作原理
克隆 带有请求的机器名称的模板虚拟机
配置 CPU 核心数、内存和 cloud-init(SSH 密钥 + 主机名 + 可选 user-data)
调整 如果指定了自定义大小,则调整主磁盘大小
连接 将虚拟机连接到指定网络
启动 并等待 IP 地址(优先使用 QEMU guest agent;否则回退到网卡 DHCP)
如果任何步骤失败,驱动会自动清理部分创建的虚拟机。
模板虚拟机准备
在配置集群之前,我们需要在 VergeOS 中准备一个具有以下条件的模板虚拟机:
必需:
Ubuntu 24.04 (Noble Numbat)——目前唯一受支持的模板操作系统
cloud-init 已安装并启用——驱动通过 multipart MIME cloud-init 负载注入 SSH 密钥并设置主机名
推荐:
QEMU guest agent ——可实现准确的 IP 发现;如果没有它,驱动会回退到网卡 DHCP 租约 IP
Ubuntu 24.04 细节
驱动会通过 cloud-init 自动处理 Ubuntu 24.04 的若干细节:
Netplan DHCP 配置 ——写入与
en*接口匹配的 netplan 配置,其中dhcp4: true,处理克隆之间 PCI 插槽名称的变化Machine-ID 重新生成 ——重新生成
/etc/machine-id,使每个虚拟机都获得唯一的 DHCP 客户端标识符缓存的 DHCP 租约清理 ——删除从模板继承的过期 DHCP 租约
内存要求
用于 Rancher 时,每个节点至少分配 4 GB 内存 (推荐 8 GB)。带 Calico CNI 的单节点 RKE2 集群在 2 GB 内存下会因 OOM 而失败。
模板中 不会 需要 Docker——Rancher 会通过系统代理安装自己的容器运行时(containerd)。模板只需要 cloud-init 和 guest agent。
网络要求
在 --vergeos-network 中指定的 VergeOS 网络必须满足以下要求,Rancher 配置的集群才能正常工作。
需要 DHCP
该网络必须启用 DHCP。驱动通过 QEMU guest agent 发现节点 IP,没有 DHCP 的情况下克隆的虚拟机将无法获取地址。
节点 → Rancher
443
TCP
系统代理注册和通信
Rancher → 节点
9345
TCP
RKE2 节点注册
Rancher → 节点
6443
TCP
Kubernetes API 服务器
节点 → 互联网
443
TCP
从镜像仓库拉取容器镜像
在 Rancher 中安装
节点驱动和 UI 扩展被打包在一个 Helm chart 中。它会安装 Docker Machine 驱动二进制文件,注册 NodeDriver 资源,并部署 UI 扩展。
通过 Helm CLI:
该 vergeosHosts 值是 Rancher 代理允许访问的 VergeOS 主机名白名单。请将 vergeos.example.com 替换为 VergeOS 环境的主机名。
通过 Rancher UI:
导航到 扩展 并点击 ⋮ 菜单 > 管理仓库
添加一个新仓库,URL 为
https://verge-io.github.io/helm-charts返回到 扩展 并安装 VergeOS 节点驱动 扩展
安装完成后, VergeOS 在创建集群时将作为节点驱动选项显示。
独立使用
该驱动也可以在 Rancher 之外直接与 Docker Machine 一起使用:
有关驱动标志和环境变量的完整列表,请参见 文档和资源 下方的驱动仓库。
UI 扩展
该 UI 扩展向 Rancher 界面添加了 VergeOS 特定组件,在创建云凭据和配置机器时提供原生体验。
它添加了什么
云凭据表单 ——提示填写:
VergeOS 主机 URL
API 密钥(存储为 Rancher secret)
TLS 验证开关
机器配置表单 ——提供:
模板虚拟机名称(要克隆的 VergeOS 虚拟机名称)
网络名称(要连接的 VergeOS VNet)
CPU 核心数、内存和磁盘大小输入项
cloud-init user-data 字段
SSH 用户和端口配置
总结
Rancher 集成由打包在单个 Helm chart 中的两个组件组成:
Docker Machine 驱动 ——克隆 VergeOS 模板虚拟机,并管理其生命周期以进行集群配置
UI 扩展 ——向 Rancher 界面添加 VergeOS 云凭据和机器配置表单
结合起来,它们使我们能够直接从 Rancher UI 在 VergeOS 基础设施上配置 RKE2/K3s 集群。一旦集群运行起来, Kubernetes 集成 组件会处理持久存储和节点生命周期。
后续步骤
在 VergeOS 中准备一个模板虚拟机(Ubuntu 24.04 + cloud-init + QEMU guest agent)
在 Rancher 集群中安装 VergeOS 节点驱动 Helm chart
使用 VergeOS 作为节点驱动来配置下游集群
在 Rancher 集群中安装 CSI 驱动和云控制器管理器 在下游集群上用于持久存储和负载均衡器
文档和资源
有关详细配置、驱动标志、chart 值和发布说明,请参见 GitHub 仓库:
Docker Machine / Rancher 节点驱动
Rancher UI 扩展
Helm chart 仓库
支持
如果你遇到问题或有功能请求,请在相关的 GitHub 仓库中提交 issue:
最后更新于
这有帮助吗?