创建 RKE1 Kubernetes 集群
在 Rancher 2.6.3
或以上的版本,你可以使用内置的 Harvester 主机驱动创建基于 Harvester 集群之上的 RKE1 Kubernetes 集群。
备注
- Harvester 主机驱动需要 VLAN 网络。
在创建由 Harvester 基础架构托管的 Kubernetes 集群时,节点模板用于配置集群节点。这些模板使用 Docker Machine 配置选项来定义节点的操作系统镜像以及设置/参数。
节点模板可以使用云凭证
来访问在基础设施提供商中配置节点所需的凭证信息。多个节点模板可以使用相同的云凭证
。通过使用云凭证
,你不必为同一云提供商重新输入访问密钥。云凭证
存储为 Kubernetes 密文。
你可以在两种情况下创建云凭据
:
- 在为集群创建节点模板期间。
- 在”用户设置”页面。
所有云凭证
都绑定到你的用户配置文件,不能与其他用户共享。
创建你的云凭证
- 单击 ☰ > Cluster Management。
- 单击 Cloud Credentials。
- 单击 Create。
- 单击 Harvester。
- 输入你的云凭证名称。
- 选择 Imported Harvester 或 External Harvester。
- 单击 Create。
创建节点模板
你可以使用 Harvester 主机驱动为你的 Kubernetes 集群创建节点模板并创建节点池。
- 配置云凭证。
- 配置实例选项:
- 配置 CPU,内存和磁盘。
- 选择与
cloud-init
配置兼容的操作系统镜像。 - 选择 主机驱动能够连接的网络,目前仅支持
VLAN
。 - 输入 SSH 用户。用户名会用于 SSH 到节点。例如,Ubuntu 云镜像的默认用户将是
ubuntu
。
- (可选)如果你需要自定义虚拟机的 cloud-init 配置,设置 Advanced Options:
- 输入 RANCHER TEMPLATE 名称。
详情请参见基础设施提供商托管的节点。
添加节点亲和性
从 v1.0.3 + Rancher v2.6.7 起可用
Harvester 主机驱动现在支持通过节点亲和性规则将一组主机调度到特定节点,这能提供高可用性并提高资源的利用率。
你可以在集群创建期间将节点亲和性添加到节点模板中,单击 Add Node Template
或通过 RKE1 Configuration > Node Templates
编辑现有节点模板:
- 单击
Advanced Options
选项卡并单击Add Node Selector
: - 如果你希望调度程序仅在满足规则时调度主机,请将优先级设置为
Required
。 点击
Add Rule
指定节点亲和规则,例如,对于 topology spread constraints 用例,你可以添加region
和zone
标签,如下:key: topology.kubernetes.io/region
operator: in list
values: us-east-1
---
key: topology.kubernetes.io/zone
operator: in list
values: us-east-1a
- 点击
Create
保存节点模板。集群安装完成后,你可以查看其主机节点是否按照亲和性规则进行调度。
创建 RKE1 Kubernetes 集群
用户可以通过 Harvester RKE1 主机驱动从集群管理页面创建 RKE1 Kubernetes 集群。
- 点击 Clusters 菜单。
- 点击 Create 按钮。
- 切换到 RKE1。
- 选择 Harvester 主机驱动。
- 输入 Cluster Name(必须)。
- 输入 Name Prefix(必须)。
- 输入 Template(必须)。
- 选择 Etcd 和 Control(必须)。
- 如果你需要使用 Harvester Cloud Provider 和 CSI 驱动,在集群选项中,把
Cloud Provider
配置为Harvester
。 - 单击 Create。
在离线环境中使用 Harvester RKE1 主机驱动
RKE1 配置依赖 qemu-guest-agent
来获取虚拟机的 IP,并依赖 docker
来设置 RKE 集群。但是,在离线环境中安装 qemu-guest-agent
和 docker
可能不可行。
你可以使用以下选项解决安装限制:
选项 1:使用安装了 qemu-guest-agent
和 docker
的虚拟机镜像。
选项 2:配置 cloud init
用户数据,使虚拟机能够通过 HTTP(S) 代理安装 qemu-guest-agent
和 docker
。
Harvester 节点模板中的用户数据示例:
#cloud-config
apt:
http_proxy: http://192.168.0.1:3128
https_proxy: http://192.168.0.1:3128
write_files:
- path: /etc/environment
content: |
HTTP_PROXY="http://192.168.0.1:3128"
HTTPS_PROXY="http://192.168.0.1:3128"
append: true