Harvester 主机驱动
Harvester 主机驱动(Node Driver)用于在 Harvester 集群中配置虚拟机。在本节中,你将学习如何配置 Rancher 以使用 Harvester 主机驱动来启动和管理 Kubernetes 集群。
主机驱动的设计与 Docker Machine Driver 相同,它的项目仓库位于 harvester/docker-machine-driver-harvester。
从 Rancher 2.6.3
版本开始,你可以使用内置的 Harvester 主机驱动创建 RKE1/RKE2 Kubernetes 集群。 此外,Harvester 可以为这些 Kubernetes 集群提供内置的负载均衡器以及 Harvester 集群的存储直通支持。
虽然你可以中在 Harvester UI 中上传和查看 .ISO 镜像,但 Rancher UI 不支持此功能。有关更多信息,请参阅 Rancher 文档。
Harvester 主机驱动
Rancher 2.6.3+
默认启用 Harvester 主机驱动。你可以前往 Cluster Management
> Drivers
> Node Drivers
页面手动管理 Harvester 主机驱动。
启用 Harvester 主机驱动后,你可以在 Harvester 集群之上创建 Kubernetes 集群并从 Rancher 管理它们。
支持矩阵
参见 Rancher 下游集群支持矩阵。
已知问题
摘要 | 状态 | 更新时间 |
---|---|---|
由 Harvester CSI Driver 在主机 Harvester 集群中创建的卷将在编辑/删除 Guest 集群后被删除 | 已解决 | 2023-05-08 |
由 Harvester CSI Driver 在主机 Harvester 集群中创建的卷将在编辑/删除 Guest 集群后被删除
状态 | 更新时间 |
---|---|
已解决 (Rancher >=v2.7.2) | 2023-05-08 |
解决方法:在 Rancher UI 中临时将 Harvester 主机驱动版本更改为 v0.6.3。
- 转到 Rancher UI 并单击
Cluster Management
>Drivers
>Node Drivers
。在Node Drivers
列表中,找到Harvester
然后点击⋮
>View in API
。 - 点击
Edit
。 - 取消选中
builtin
复选框。 - 将
*url
改为https://releases.rancher.com/harvester-node-driver/v0.6.3/docker-machine-driver-harvester-amd64.tar.gz
。 - 将
checksum
改为159516f8f438e9b1726418ec8608625384aba1857bc89dff4a6ff16b31357c28
。 - 单击
Show Request
>Send Request
。 - 单击
Reload
,直到status.appliedChecksum
和status.appliedURL
的值更改为我们设置的值。
警告
对主机驱动的更改无法保留。换言之,重启 Rancher 容器后更改将丢失。
警告
要使用这个解决方法,请确保与网址的连接是稳定的。 如果你使用离线环境,请下载文件并将其托管在内网上。
警告
从 v0.6.3 开始,Harvester 主机驱动已从后端删除了 qemu-guest-agent
自动注入。如果你使用的镜像不包含 qemu-guest-agent
包,你可以使用 userdata
配置来安装和启动 qemu-guest-agent
。否则,集群将无法配置成功。
#cloud-config
package_update: true
packages:
- qemu-guest-agent
runcmd:
- - systemctl
- enable
- '--now'
- qemu-guest-agent.service
解决方法:针对此问题,Rancher v2.7.2 已使用固定主机驱动版本 v0.6.3。Rancher v2.7.2 UI 将执行 qemu-guest-agent
自动注入。
受影响的版本:
- Rancher: v2.6.x,v2.7.0,v2.7.1
RKE1 Kubernetes 集群
RKE2 Kubernetes 集群
K3s Kubernetes 集群
拓扑分布约束
从 v1.0.3 起可用
在你的 Kubernetes 集群中,你可以使用拓扑分布约束来控制工作负载如何在容错域(例如区域和可用区)之间分布在 Harvester 虚拟机中。这有助于实现集群资源的高可用性和提高资源利用率。
支持同步拓扑标签功能所需的最低 RKE2 版本如下:
支持的 RKE2 版本 |
---|
>= v1.24.3+rke2r1 |
>= v1.23.9+rke2r1 |
>= v1.22.12+rke2r1 |
另外,通过 RKE/K3s 应用程序
安装的 Cloud Provider 版本必须 >= v0.1.4。
将拓扑标签同步到 Guest 集群节点
在集群安装期间,Harvester 主机驱动将自动将拓扑标签从 VM 节点同步到 Guest 集群节点。目前,仅支持 region
和 zone
拓扑标签。
备注
对于 v0.2.0 之前的 Harvester CCM 版本,标签同步仅在 Guest 节点初始化期间进行。为防止节点偏移到其他区域或可用区,建议在集群预配时添加节点亲和性规则,以便虚拟机在重建后也可以调度到同一个地区。
随着 Harvester Cloud Provider v0.2.0 的推出,当 Guest 节点对应的 VM 发生迁移或更改时,Harvester 节点上的拓扑标签将自动重新同步。
通过
Hosts > Edit Config > Labels
在 Harvester 节点上配置拓扑标签。例如,添加拓扑标签:topology.kubernetes.io/region: us-east-1
topology.kubernetes.io/zone: us-east-1a
使用 Harvester 主机驱动创建 Guest Kubernetes 集群,建议添加节点亲和性规则,从而避免在 VM 重建后节点偏移到其它地区。
成功部署集群后,确认 Guest Kubernetes 节点标签已成功从 Harvester VM 节点同步。
现在,你可以在你的 Guest Kubernetes 集群上部署工作负载,并能够使用拓扑分布约束来管理它们。