This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.3.2. 为 Windows 容器工作负载准备 vSphere 环境
您必须通过创建 vSphere Windows VM 金级镜像并启用与 WMCO 的内部 API 服务器通信来为 Windows 容器工作负载准备 vSphere 环境。
5.3.2.1. 创建 vSphere Windows 虚拟机金级镜像 复制链接链接已复制到粘贴板!
创建 vSphere Windows 虚拟机(VM)金级镜像。
先决条件
- 您已创建了私钥/公钥对,用于在 OpenSSH 服务器中配置基于密钥的身份验证。还必须在 Windows Machine Config Operator (WMCO) 命名空间中配置私钥。这需要允许 WMCO 与 Windows 虚拟机进行通信。如需了解更多详细信息,请参阅"为 Windows Machine Config Operator 配置 secret" 部分。
在创建 Windows 虚拟机的多个情形中,您必须使用 Microsoft PowerShell 命令。本指南中的 PowerShell 命令由 PS C:\> 前缀区分。
流程
- 使用 Windows Server Semi-Annual Channel(SAC)在 vSphere 客户端中创建一个新虚拟机:Windows Server 20H2 ISO 镜像,其中包含 Microsoft patch KB4565351。需要这个补丁来设置在 vSphere 上安装的集群所需的 VXLAN UDP 端口。如需更多信息,请参阅 VMware 文档。
- 在 Windows 虚拟机上安装和配置 VMware Tools 版本 11.0.6 或更高版本。如需更多信息,参阅 VMware Tools 文档。
在 Windows 虚拟机上安装了 VMware Tools 后,请验证以下内容:
The
C:\ProgramData\VMware\VMware Tools\tools.conf文件存在,并带有以下条目:exclude-nics=
exclude-nics=Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果
tools.conf文件不存在,则使用exclude-nics选项取消注释并设置为空值创建该文件。此条目确保通过混合覆盖在 Windows 虚拟机上生成的克隆 vNIC 不被忽略。
Windows 虚拟机在 vCenter 中有一个有效的 IP 地址:
ipconfig
C:\> ipconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow VMTools Windows 服务正在运行:
PS C:\> Get-Service -Name VMTools | Select Status, StartType
PS C:\> Get-Service -Name VMTools | Select Status, StartTypeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 在 Windows 虚拟机上安装和配置 OpenSSH 服务器。如需了解更多详细信息,请参阅 Microsoft 的有关安装 OpenSSH 的文档。
为管理用户设置 SSH 访问权限。详情请参阅 Microsoft 文档的管理员用户。
重要指令中使用的公钥必须与稍后在 WMCO 命名空间中创建的私钥对应,后者包含您的 secret。如需了解更多详细信息,请参阅"为 Windows Machine Config Operator 配置 secret" 部分。
-
按照 Microsoft 文档 在 Windows 虚拟机上安装
docker容器运行时。 您必须在 Windows 虚拟机中创建新的防火墙规则,以允许进入连接的容器日志。运行以下命令,在 TCP 端口 10250 中创建防火墙规则:
PS C:\> New-NetFirewallRule -DisplayName "ContainerLogsPort" -LocalPort 10250 -Enabled True -Direction Inbound -Protocol TCP -Action Allow -EdgeTraversalPolicy Allow
PS C:\> New-NetFirewallRule -DisplayName "ContainerLogsPort" -LocalPort 10250 -Enabled True -Direction Inbound -Protocol TCP -Action Allow -EdgeTraversalPolicy AllowCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 克隆 Windows 虚拟机,使其成为可重复利用的镜像。遵循 VMware 文档来了解如何克隆现有虚拟机以了解更多详细信息。
在克隆的 Windows 虚拟机上,运行 Windows Sysprep 工具 :
C:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe /shutdown /unattend:<path_to_unattend.xml>
C:\> C:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe /shutdown /unattend:<path_to_unattend.xml>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定
unattend.xml文件的路径。
注意对于您可以在 Windows 镜像中运行
sysprep命令的次数有一个限制。如需更多信息,请参阅 Microsoft 文档。提供了
unattend.xml示例,它维护 WMCO 所需的所有更改。您必须修改这个示例,它不能直接使用。例 5.1.
unattend.xml示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定
ComputerName,它必须遵循 Kubernetes 名称规格。这些规格也适用于在创建新虚拟机时在生成的模板中执行的 Guest OS 自定义。 - 2
- 禁用自动登录,以避免在启动时使用管理员特权打开终端的安全问题。这是默认值,不得更改。
- 3
- 将
MyPassword占位符替换为 Administrator 帐户的密码。这可防止内置的 Administrator 帐户默认拥有空白密码。遵循 Microsoft 选择密码的最佳实践。
Sysprep 工具完成后,Windows 虚拟机将关闭。您不得再使用此虚拟机或打开此虚拟机。
- 将 Windows 虚拟机转换为 vCenter 中的模板。