|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
配置文件
配置示例
在手动或自动安装过程中,可以提供配置文件以配置各种设置。以下是一个配置示例:
scheme_version: 1
server_url: https://cluster-VIP:443
token: TOKEN_VALUE
os:
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQAB...
- github:username
write_files:
- encoding: ""
content: test content
owner: root
path: /etc/test.txt
permissions: '0755'
hostname: myhost
modules:
- kvm
- nvme
sysctls:
kernel.printk: "4 4 1 7"
kernel.kptr_restrict: "1"
dns_nameservers:
- 8.8.8.8
- 1.1.1.1
ntp_servers:
- 0.suse.pool.ntp.org
- 1.suse.pool.ntp.org
password: rancher
environment:
http_proxy: http://myserver
https_proxy: http://myserver
labels:
topology.kubernetes.io/zone: zone1
foo: bar
mylabel: myvalue
externalStorageConfig:
enabled: true
multiPathConfig:
blacklist:
- vendor: "!QEMU"
product: "!QEMU HARDDISK"
blacklistWwids:
- ".*"
blacklistExceptions:
- vendor: "DELL"
product: "POWERVAULT"
blacklistExceptionWwids:
- "^0QEMU_QEMU_HARDDISK_disk[0-9]+"
additionalKernelArguments: "multipath=on"
install:
mode: create
management_interface:
interfaces:
- name: ens5
hwAddr: "B8:CA:3A:6A:64:7C"
method: dhcp
force_efi: true
device: /dev/sda
data_disk: /dev/sdb
silent: true
iso_url: http://myserver/test.iso
poweroff: true
no_format: true
debug: true
tty: ttyS0
vip: 10.10.0.19
vip_hw_addr: 52:54:00:ec:0e:0b
vip_mode: dhcp
cluster_pod_cidr: 10.52.0.0/16
cluster_service_cidr: 10.53.0.0/16
cluster_dns: 10.53.0.10
force_mbr: false
addons:
harvester_vm_import_controller:
enabled: false
values_content: ""
harvester_pcidevices_controller:
enabled: false
values_content: ""
rancher_monitoring:
enabled: true
values_content: ""
rancher_logging:
enabled: false
values_content: ""
harvester_seeder:
enabled: false
values_content: ""
system_settings:
auto-disk-provision-paths: ""
配置参考
下面是所有配置键的参考。
|
安全风险:配置文件包含应保密的凭据。请不要使配置文件公开可访问。 |
|
配置优先级:当您在安装过程中提供远程配置文件时,配置文件不会覆盖您之前填写和选择的输入值。 优先考虑您在引导安装过程中输入的值。 例如,如果您在配置文件中指定了`os.hostname`,而在安装时在提示时填写了`hostname`字段,则您填写的值将优先于配置文件中的`os.hostname`。 |
server_url
定义
`server_url`是SUSE Virtualization集群的URL,用于新的`node`加入集群。
当安装处于`JOIN`模式时,此配置是强制性的。server_url`的默认格式为`https://cluster-VIP:443。
|
为了确保高可用性 (HA) SUSE Virtualization 集群,请使用集群 VIP 或 |
os.ssh_authorized_keys
定义
应添加到默认用户 rancher 的 SSH 授权密钥列表。可以通过使用格式 github:${USERNAME} 从 GitHub 用户帐户获取 SSH 密钥。这可以通过从 https://github.com/${USERNAME}.keys 下载密钥来完成。
示例
os:
ssh_authorized_keys:
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2TBZGjE+J8ag11dzkFT58J3XPONrDVmalCNrKxsfADfyy0eqdZrG8hcAxAR/5zuj90Gin2uBR4Sw6Cn4VHsPZcFpXyQCjK1QDADj+WcuhpXOIOY3AB0LZBly9NI0ll+8lo3QtEaoyRLtrMBhQ6Mooy2M3MTG4JNwU9o3yInuqZWf9PvtW6KxMl+ygg1xZkljhemGZ9k0wSrjqif+8usNbzVlCOVQmZwZA+BZxbdcLNwkg7zWJSXzDIXyqM6iWPGXQDEbWLq3+HR1qKucTCSxjbqoe0FD5xcW7NHIME5XKX84yH92n6yn+rxSsyUfhJWYqJd+i0fKf5UbN6qLrtd/D"
- "github:ibuildthecloud"
os.write_files
在启动时写入磁盘的文件列表。encoding 字段指定内容的编码。有效的 encoding 值为:
-
"":内容数据以纯文本形式写入。在这种情况下,encoding字段也可以省略。 -
b64,base64:内容数据为 base64 编码。 -
gz,gzip:内容数据为 gzip 压缩。 -
gz+base64,gzip+base64,gz+b64,gzip+b64:内容数据先进行 gzip 压缩,然后再进行 base64 编码。
示例
os:
write_files:
- encoding: b64
content: CiMgVGhpcyBmaWxlIGNvbnRyb2xzIHRoZSBzdGF0ZSBvZiBTRUxpbnV4...
owner: root:root
path: /etc/connman/main.conf
permissions: '0644'
- content: |
# My new /etc/sysconfig/samba file
SMDBOPTIONS="-D"
path: /etc/sysconfig/samba
- content: !!binary |
f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAwARAAAAAAABAAAAAAAAAAJAVAAAAAA
AEAAHgAdAAYAAAAFAAAAQAAAAAAAAABAAEAAAAAAAEAAQAAAAAAAwAEAAAAAAA
AAAAAAAAAwAAAAQAAAAAAgAAAAAAAAACQAAAAAAAAAJAAAAAAAAcAAAAAAAAAB
...
path: /bin/arch
permissions: '0555'
- content: |
15 * * * * root ship_logs
path: /etc/crontab
os.after_install_chroot_commands
定义
您可以添加额外的软件包,使用`after_install_chroot_commands`。由 elemental-toolkit提供的`after-install-chroot`阶段允许您执行不受文件系统写入问题限制的命令,确保用户定义的命令在系统重启后仍然有效。
示例
请参考以下示例配置,以在SUSE Virtualization中安装RPM软件包:
os:
after_install_chroot_commands:
- rpm -ivh <the url of rpm package>
在`after-install-chroot stage`中无法进行DNS解析,并且`nameserver`可能不可用。如果您需要访问域名以通过URL安装软件包,请先创建一个临时`/etc/resolv.conf`文件。例如:
os:
after_install_chroot_commands:
- "echo 'nameserver 8.8.8.8' | sudo tee /etc/resolv.conf"
- "mkdir /usr/local/bin"
- "curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 && chmod 700 get_helm.sh && ./get_helm.sh"
- "rm -f /etc/resolv.conf"
|
升级SUSE Virtualization会导致`after-install-chroot`阶段对操作系统的更改丢失。您还必须配置`after-upgrade-chroot`以使您的更改在升级后保持有效。在升级之前,请参考 运行时持久性更改。 |
os.password
定义
默认用户`rancher`的密码。默认情况下,rancher`用户没有密码。
如果您在运行时设置了密码,它将在下次启动时重置。密码的值可以是明文或加密形式。获取这种加密形式的最简单方法是在Linux系统上更改密码,并复制/etc/shadow`中第二个字段的值。您还可以使用OpenSSL加密密码。有关支持的加密算法,请参阅下表。
| 算法 | 命令 | 支持 |
|---|---|---|
SHA-512 |
|
是 |
SHA-256 |
|
是 |
MD5 |
|
是 |
MD5,Apache变体 |
|
是 |
AIX-MD5 |
|
否 |
os.environment
示例
os:
environment:
http_proxy: http://myserver
https_proxy: http://myserver
|
此示例为*基础操作系统组件*设置HTTP(S)代理。 要为SUSE Virtualization组件(例如,获取外部镜像和备份到S3服务)设置HTTP(S)代理,请参见设置/http-proxy。 |
os.externalStorageConfig
定义
启用对外部存储设备(例如,使用多路径I/O(MPIO)的存储区域网络(SAN)设备)支持的设置。在多路径配置(multiPathConfig)中,您可以根据特定标准(供应商、产品名称或全球唯一标识符(WWID))将设备添加到黑名单和白名单。
当设置启用时,SUSE Virtualization会生成具有指定配置的`/etc/multipath.conf`文件,供多路径守护进程用于管理存储设备。
示例
os:
externalStorageConfig:
enabled: true
multiPathConfig:
blacklist:
- vendor: "!QEMU"
product: "!QEMU HARDDISK"
blacklistWwids:
- ".*"
blacklistExceptions:
- vendor: "DELL"
product: "POWERVAULT"
blacklistExceptionWwids:
- "^0QEMU_QEMU_HARDDISK_disk[0-9]+"
此配置生成以下`/etc/multipath.conf`文件:
blacklist {
device {
vendor "!QEMU"
product "!QEMU HARDDISK"
}
wwid ".*"
}
blacklist_exceptions {
device {
vendor "DELL"
product "POWERVAULT"
}
wwid "^0QEMU_QEMU_HARDDISK_disk[0-9]+"
}
install.addons
定义:设置定义默认的附加产品状态。SUSE Virtualization 附加产品默认情况下是禁用的。
支持的值:
-
vm-import-controller(chartName:harvester-vm-import-controller) -
pcidevices-controller(chartName:harvester-pcidevices-controller) -
rancher-monitoring -
rancher-logging -
harvester-seeder(实验性)
示例:
install:
addons:
rancher_monitoring:
enabled: true
rancher_logging:
enabled: false
install.automatic
定义:设置强制安装程序跳过安装过程中的交互步骤。
启用时,配置要么从 harvester.install.config_url 的值中获取,要么使用内核参数单独定义。
install.data_disk
定义:存储虚拟机数据的默认设备。
通过 PXE 安装时,如果服务器包含多个物理卷,请使用 /dev/disk/by-id/$id 或 /dev/disk/by-path/$path 指定存储设备。
默认值:在设置 install.device 中配置的存储设备
示例:
install:
data_disk: /dev/sdb
install.device
定义:安装 SUSE Virtualization 操作系统的设备。
通过 PXE 安装时,如果服务器包含多个物理卷,请使用 /dev/disk/by-id/$id 或 /dev/disk/by-path/$path 指定存储设备。
install.force_mbr
定义:设置强制在 BIOS 系统上使用 MBR 分区。
SUSE Virtualization 默认情况下在 UEFI 和 BIOS 系统上使用 GPT 分区。兼容性问题可能需要您改用 MBR 分区。
如果您为 install.device 和 install.data_disk 指定相同的存储设备,SUSE Virtualization 将创建一个额外的分区来存储虚拟机数据。当您强制使用 MBR 分区时,不会创建此额外分区。相反,虚拟机数据存储在用于存放操作系统数据的分区中。
示例:
install:
force_mbr: true
install.harvester.longhorn.default_settings.guaranteedInstanceManagerCPU
定义:每个节点上可分配的处理器总量中,保留给每个 Longhorn 实例管理器 Pod 的百分比。
建议使用默认值以确保系统的高可用性。在部署单节点集群时,您可以指定一个小于 12 的值。
有关如何设置正确值的更多信息,请参见 保证实例管理器处理器 在 SUSE Storage 文档中。
默认值:12
支持的值:0 到 12。所有其他值视为 12。
示例:
harvester:
longhorn:
default_settings:
guaranteedInstanceManagerCPU: 6
install.harvester.longhorn.default_settings.storageReservedPercentageForDefaultDisk
定义:每个新 SUSE Storage 节点上将不会分配给默认磁盘的磁盘空间百分比。
SUSE Virtualization 在启动磁盘上为 SUSE Storage 默认磁盘创建一个专用分区,因此您无需在 root 磁盘上为其保留任何空间。
默认值:0
支持的值:0 到 30。所有其他值视为 30。
示例:
harvester:
longhorn:
default_settings:
storageReservedPercentageForDefaultDisk: 15
install.harvester.storage_class.replica_count
定义:默认 StorageClass harvester-longhorn 的副本数量。
建议使用默认值以确保存储的高可用性。在部署单节点集群时,您必须将值设置为 1。
有关更多信息,请参见 默认副本数量 在 SUSE Storage 文档中。
默认值:3
支持的值:1 到 3。所有其他值视为 3。
示例:
install:
harvester:
storage_class:
replica_count: 1
install.management_interface
定义:主机的网络接口。
SUSE Virtualization 使用 systemd 网络命名方案。确保在目标机器上存在接口名称,然后再进行安装。
字段:
-
method:用于为网络分配IP的方法。支持的值:-
dhcp:从 DHCP 服务器请求一个 IP。 -
static:IP 和网关地址是手动分配的。
-
-
ip:静态 IP 分配给网络。当`method`的值为`static`时,此字段是必需的。 -
subnet_mask:网络的子网掩码。当`method`的值为`static`时,此字段是必需的。 -
gateway:分配给网络的网关地址。当`method`的值为`static`时,此字段是必需的。 -
interfaces:网络接口的数组。安装程序将指定的接口(从属)组合成一个单一的绑定接口。-
interfaces.name:从属接口的名称。 -
interfaces.hwAddr:从属接口的硬件 MAC 地址。此字段是可选的。
-
-
bond_options: 绑定接口的选项。未指定时,使用以下选项:-
mode:绑定模式。默认值为active-backup。 -
miimon:MII链路监控频率(以毫秒为单位)。默认值为100。
-
-
mtu:接口的最大传输单元(MTU)。默认值为1500。 -
vlan_id:接口的 VLAN ID。默认值为0,这意味着接口处于未标记模式。
示例:
install:
mode: create
management_interface:
interfaces:
- name: ens5
hwAddr: "B8:CA:3A:6A:64:7D" # Optional
method: dhcp
bond_options:
mode: balance-tlb
miimon: 100
mtu: 1492
vlan_id: 101
|
连接到绑定接口的物理交换机必须严格配置为干线端口。这些端口必须接受标记流量,并发送带有虚拟机网络使用的 VLAN ID 的标记流量。 |
install.mode
定义:安装模式。
支持的值:
-
create:创建一个新的 SUSE Virtualization 集群。 -
join:加入现有的 SUSE Virtualization 集群。您必须指定server_url。
示例:
install:
mode: create
install.persistent_partition_size
定义:COS_PERSISTENT 分区的大小,以 Gi 或 Mi 为单位。
该分区存储数据,例如系统包和容器镜像。最小值为 150 Gi。
默认值:150 Gi
示例:
install:
persistent_partition_size: 150Gi
install.rawdiskimagepath
定义:强制安装程序仅安装 SUSE Virtualization 超级管理程序(不进行任何配置)的设置。您必须启用 harvester.install.automatic 才能使用此设置。
install.role
定义:在安装时分配给节点的角色。未指定时,分配 default 角色。
-
default:允许节点作为管理节点或工作节点运行。 -
management:在 SUSE Virtualization 提升节点为管理节点时,允许节点被优先考虑。 -
worker:限制节点为工作节点(在特定集群中永不提升为管理节点)。 -
witness:将节点限制为在特定集群中作为见证节点(仅作为etcd节点功能)。
install.skipchecks
定义:允许安装继续进行,即使未满足生产使用的最低要求。
安装程序会自动检查硬件是否满足最低要求以进行生产使用。通过PXE引导进行自动安装时,如果任何检查失败,安装将停止,并且警告将打印到系统控制台并保存到安装环境中的`/var/log/console.log`。
要覆盖此行为,请设置`install.skipchecks=true`。当设置为`true`时,警告消息仍会保存到`/var/log/console.log`,但即使未满足生产使用的硬件要求,安装仍会继续。
默认值:false
示例:
install:
skipchecks: true
install.vip_mode
定义:分配VIP的模式。
支持的值:
-
dhcp:发送DHCP请求以获取VIP。您必须使用`install.vip_hw_addr`字段指定硬件地址。 -
static:使用静态VIP。
示例:
install:
vip: 192.168.0.100
vip_mode: static
install.vip_hw_addr
定义:与VIP对应的硬件地址。
您必须配置本地 DHCP 服务器以提供配置的 VIP。当`install.vip_mode`的值为`dhcp`时,此字段是必需的。有关详细信息,请参见管理地址。
示例:
install:
vip: 10.10.0.19
vip_mode: dhcp
vip_hw_addr: 52:54:00:ec:0e:0b
install.cluster_pod_cidr
定义:SUSE Virtualization pods 的 CIDR。
使用此字段覆盖默认的 10.52.0.0/16 pod CIDR。
示例:
install:
cluster_pod_cidr: 172.16.0.0/16
install.cluster_service_cidr
定义:SUSE Virtualization 服务的 CIDR。
使用此字段覆盖默认服务 CIDR 10.53.0.0/16。
|
如果您更改此CIDR,必须确保集群DNS IP( |
示例:
install:
cluster_service_cidr: 172.22.0.0/16
install.cluster_dns
定义:SUSE Virtualization DNS服务的IP。
使用此字段覆盖默认DNS服务IP 10.53.0.10。
|
此IP必须在`cluster_service_cidr`字段定义的范围内。 |
示例:
install:
cluster_dns: 172.16.0.10
install.webhooks
定义:允许您接收某些安装程序相关事件通知的Webhooks。
安装程序向指定的URL发送HTTP请求。可以为单个事件发送多个请求,但如果一个请求失败,其余请求将不会发送。
字段:
-
event:触发Webhooks上HTTP操作的事件类型。-
STARTED:安装已开始。 -
SUCCEEDED:安装已成功完成,没有错误。 -
FAILED:安装未成功。
-
-
method:HTTP方法 -
url:HTTP请求发送的URL -
insecure:当设置为`true`时,SUSE Virtualization不验证服务器的证书。默认值为false。 -
basicAuth:当设置为`true`时,使用"Basic" HTTP身份验证方案。 -
headers:当设置为`true`时,自定义头部包含在HTTP请求中。诸如`Content-Length`的头部会自动包含。 -
payload*:当设置为`true`时,负载数据与HTTP请求一起发送。您可能需要在`headers`字段中设置正确的Content-Type头,以确保服务器接受请求。
示例:
install:
webhooks:
- event: SUCCEEDED
method: GET
url: http://10.100.0.100/cblr/svc/op/nopxe/system/{{.Hostname}}
- event: STARTED
method: GET
url: https://10.100.0.100/started/{{.Hostname}}
insecure: true
basicAuth:
user: admin
password: p@assword
- event: FAILED
method: POST
url: http://10.100.0.100/record
headers:
Content-Type:
- 'application/json; charset=utf-8'
payload: |
{
"host": "{{.Hostname}}",
"device": "hd"
}
install.wipedisks
|
此设置在v1.5.0中已被移除。请参见 |
定义:使用`sgdisk`命令清除主机上所有磁盘分区的设置。
install.wipe_all_disks
定义:使用`sgdisk`命令清除主机上所有带有`COS_OEM`标签的磁盘分区的设置。
示例:
install:
wipe_all_disks: true
install.wipe_disks_list
定义:使用`sgdisk`命令清除主机上带有`COS_OEM`标签的磁盘分区列表的设置。
示例:
install:
wipe_disks_list:
- /dev/sda
- /dev/sdb
install.with-net-images
定义:设置决定安装后是否从互联网拉取镜像。
此字段的值通常源自内核参数`harvester.install.with_net_images`。当值为`true`时,SUSE Virtualization不会预加载安装媒体中打包的镜像,而是在必要时从互联网拉取镜像。
sans(主题备用名称)
定义:要与服务器的TLS证书中的公钥关联的附加主机名和IP地址(IPv4或IPv6)。
示例:
`example.com`被添加为主题备用名称。
sans:
- example.com
要验证这一点,您可以打印证书信息并在`X509v3 Subject Alternative Name`字段中搜索`example.com`。
> openssl x509 -in /var/lib/rancher/rke2/server/tls/serving-kube-apiserver.crt -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 927360019122894648 (0xcdea50626b83738)
Signature Algorithm: ecdsa-with-SHA256
Issuer: CN = rke2-server-ca@1740650146
Validity
Not Before: Feb 27 09:55:46 2025 GMT
Not After : Feb 27 09:55:46 2026 GMT
Subject: CN = kube-apiserver
Subject Public Key Info:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit)
pub:
04:23:6a:e5:22:52:d0:82:3b:48:64:e4:1c:72:11:
c9:b4:96:b5:ae:de:82:a3:e3:a5:fe:e5:b3:21:04:
43:32:f6:f2:7e:54:73:99:e9:65:80:07:82:54:fb:
33:45:b7:e1:4a:1e:30:4f:be:7f:b8:60:cc:86:54:
f6:39:0c:7d:94
ASN1 OID: prime256v1
NIST CURVE: P-256
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Authority Key Identifier:
keyid:02:33:86:86:97:C3:32:3C:16:E0:C6:66:19:59:0B:93:C9:A0:5B:B5
X509v3 Subject Alternative Name:
DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.default.svc.cluster.local, DNS:example.com, DNS:localhost, DNS:harvester-node-0, IP Address:192.168.3.131, IP Address:127.0.0.1, IP Address:0:0:0:0:0:0:0:1, IP Address:192.168.3.30, IP Address:10.53.0.1
Signature Algorithm: ecdsa-with-SHA256
30:46:02:21:00:af:b7:81:97:f4:d1:fe:bb:62:a1:46:48:30:
ab:e8:02:ae:32:44:d8:cb:96:87:e5:85:33:ce:7c:83:cb:c7:
48:02:21:00:ac:93:b4:62:f6:65:0a:42:8b:9c:69:51:54:47:
6a:1d:12:96:4a:bd:e9:5e:4e:eb:a4:55:a2:39:bd:b3:48:80
system_settings
定义:允许您覆盖默认系统设置的设置。
有关更多信息,请参见设置。
|
系统设置仅在您创建新的SUSE Virtualization集群时可以被覆盖,这涉及在第一个节点上安装操作系统和其他组件。加入集群的节点继承在第一个节点上配置的系统设置。 |
示例:
以下示例覆盖默认的`containerd-registry`、http-proxy`和`ui-source`设置。这些值必须是`string。
system_settings:
containerd-registry: '{"Mirrors": {"docker.io": {"Endpoints": ["https://myregistry.local:5000"]}}, "Configs": {"myregistry.local:5000": {"Auth": {"Username": "testuser", "Password": "testpassword"}, "TLS": {"InsecureSkipVerify": false}}}}'
http-proxy: '{"httpProxy": "http://my.proxy", "httpsProxy": "https://my.proxy", "noProxy": "some.internal.svc"}'
ui-source: auto