Windows 离线安装
Windows 支持目前处于实验阶段(从 v1.21.3+rke2r1 开始)
Windows 支持要求选择 Calico 作为 RKE2 集群的 CNI
你可以通过两种不同的方法在离线环境中使用 RKE2 Windows Agent (Worker) 节点。你需要先完成 RKE2 离线设置。
你可以使用 rke2-windows-<BUILD_VERSION>-amd64-images.tar.gz
压缩包发布工件进行部署,也可以使用私有镜像仓库进行部署。根据我们已验证 的 Windows 版本,我们目前为 Windows 发布了三个 tarball 工件。
- rke2-windows-1809-amd64-images.tar.gz
- rke2-windows-2004-amd64-images.tar.gz
- rke2-windows-20H2-amd64-images.tar.gz
步骤中提到的所有文件都可以从此处所需 RKE2 版本的 asset 中获取。
准备 Windows Agent 节点
注意:需要启用 Windows Server Containers 功能才能使 RKE2 Agent 工作。
使用管理员权限打开一个新的 Powershell 窗口。
powershell -Command "Start-Process PowerShell -Verb RunAs"
在新的 Powershell 窗口中,运行以下命令:
Enable-WindowsOptionalFeature -Online -FeatureName containers –All
需要重启才能使 Containers
功能正常运行。
Windows Tarball 方法
-
从 RKE2 release artifacts 列表下载 RKE2 版本的 Windows 镜像 tarball 和二进制文件。
使用 tar.gz 镜像 tarball
- Windows Server 2019 LTSC (amd64) (OS Build 17763.2061)
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest https://github.com/rancher/rke2/releases/download/v1.21.4%2Brke2r2/rke2-windows-1809-amd64-images.tar.gz -OutFile /var/lib/rancher/rke2/agent/images/rke2-windows-1809-amd64-images.tar.gz- Windows Server SAC 2004 (amd64) (OS Build 19041.1110)
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest https://github.com/rancher/rke2/releases/download/v1.21.4%2Brke2r2/rke2-windows-2004-amd64-images.tar.gz -OutFile c:/var/lib/rancher/rke2/agent/images/rke2-windows-2004-amd64-images.tar.gz- Windows Server SAC 20H2 (amd64) (OS Build 19042.1110)
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest https://github.com/rancher/rke2/releases/download/v1.21.4%2Brke2r2/rke2-windows-20H2-amd64-images.tar.gz -OutFile c:/var/lib/rancher/rke2/agent/images/rke2-windows-20H2-amd64-images.tar.gz使用 tar.zst 镜像 tarball
- Windows Server 2019 LTSC (amd64) (OS Build 17763.2061)
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest https://github.com/rancher/rke2/releases/download/v1.21.4%2Brke2r2/rke2-windows-1809-amd64-images.tar.zst -OutFile /var/lib/rancher/rke2/agent/images/rke2-windows-1809-amd64-images.tar.zst- Windows Server SAC 2004 (amd64) (OS Build 19041.1110)
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest https://github.com/rancher/rke2/releases/download/v1.21.4%2Brke2r2/rke2-windows-2004-amd64-images.tar.zst -OutFile c:/var/lib/rancher/rke2/agent/images/rke2-windows-2004-amd64-images.tar.zst- Windows Server SAC 20H2 (amd64) (OS Build 19042.1110)
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest hhttps://github.com/rancher/rke2/releases/download/v1.21.4%2Brke2r2/rke2-windows-20H2-amd64-images.tar.zst -OutFile c:/var/lib/rancher/rke2/agent/images/rke2-windows-20H2-amd64-images.tar.zst- 使用
rke2-windows-<BUILD_VERSION>-amd64.tar.gz
或rke2-windows-<BUILD_VERSION>-amd64.tar.zst
。与 pigz 相比,Zstandard 支持更好的压缩比和更快的解压缩速度。
-
确保节点上存在
/var/lib/rancher/rke2/agent/images/
目录。New-Item -Type Directory c:\usr\local\bin -Force
New-Item -Type Directory c:\var\lib\rancher\rke2\bin -Force -
将压缩包复制到节点上的
/var/lib/rancher/rke2/agent/images/
,需要保留文件扩展名。
私有镜像仓库方法
从 RKE2 v1.20 开始,私有镜像仓库支持遵循 containerd 镜像仓库配置中的所有设置。其中包括端点覆盖和传输协议(HTTP/HTTPS)、身份验证、证书验证等。
在 RKE2 v1.20 之前,私有镜像仓库必须使用 TLS,并使用主机 CA 捆绑包信任的证书。如果镜像仓库使用的是自签名证书,你可以使用 update-ca-certificates
将证书添加到主机 CA 捆绑包。镜像仓库还必须允许匿名(未经身份验证)访问。
- 将所有必需的系统镜像添加到你的私有镜像仓库。你可以从与上述每个压缩包对应的
.txt
文件中获取镜像列表,也可以对离线镜像压缩包使用docker load
,然后标记并推送加载的镜像。 - 如果在镜像仓库上使用私有或自签名证书,请将镜像仓库的 CA 证书添加到 containerd 镜像仓库配置中,如果使用 v1.20 之前的版本,则添加到操作系统的受信任证书中。
- 使用
system-default-registry
参数安装 RKE2,或使用 containerd 镜像仓库配置将你的镜像仓库用作 docker.io 的 mirror。
安装 Windows RKE2
这些步骤只能在完成 Tarball 方法或私有镜像仓库方法之一后执行。
- 获取 Windows RKE2 二进制文件
rke2-windows-amd64.exe
。确保二进制文件名为rke2.exe
并将其放在c:/usr/local/bin
中。
Invoke-WebRequest https://github.com/rancher/rke2/releases/download/v1.21.4%2Brke2r2/rke2-windows-amd64.exe -OutFile c:/usr/local/bin/rke2.exe
- 为 Windows 配置 rke2-agent
New-Item -Type Directory c:/etc/rancher/rke2 -Force
Set-Content -Path c:/etc/rancher/rke2/config.yaml -Value @"
server: https://<server>:9345
token: <token from server node>
"@
有关 config.yaml
文件的更多信息,请参阅安装选项文档。
- 配置 PATH
$env:PATH+=";c:\var\lib\rancher\rke2\bin;c:\usr\local\bin"
[Environment]::SetEnvironmentVariable(
"Path",
[Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + ";c:\var\lib\rancher\rke2\bin;c:\usr\local\bin",
[EnvironmentVariableTarget]::Machine)
- 通过使用所需参数运行二进制文件来启动 RKE2 Windows 服务。有关其他参数,请参阅 Windows Agent 配置参考。
c:\usr\local\bin\rke2.exe agent service --add
例如,如果使用私有镜像仓库方法,你的配置文件将具有以下内容:
system-default-registry: "registry.example.com:5000"
注意:system-default-registry
参数必须仅指定有效的 RFC 3986 URI 授权,即主机和可选端口。
如果想仅使用 CLI 参数,请使用所需参数运行二进制文件。
c:/usr/local/bin/rke2.exe agent --token <> --server <>