Windows 怎么使用 PowerShell 自动化批量部署 Windows 容器集群

落晨酱_8397

落晨酱_8397

2026-09-06

323人浏览

原创

powershell 不能直接部署 windows 容器集群,因其原生不支持多节点编排;实际是通过远程脚本批量配置容器运行时、拉取镜像、启动容器,并配合 kubernetes 等外部编排工具实现集群能力。

powershell 本身不直接部署 windows 容器“集群”,因为 windows 容器原生不支持像 linux 上 kubernetes 那样的多节点容器编排——windows server 的容器运行时(containerd 或 dockerd)默认只面向单机,且 microsoft 已于 2023 年起正式停止对 windows server 上 docker swarm 的支持。所谓“批量部署 windows 容器集群”,实际指:在多台 windows server 节点上统一安装容器运行时、拉取镜像、启动容器,并配合外部编排工具(如 kubernetes with windows nodes)或轻量级协调机制(如 powershell 远程 + 自定义脚本)实现近似集群行为。

确认基础环境与角色支持

Windows 容器仅支持 Windows Server 2016 及更高版本(推荐 2022),且必须启用以下组件:

  • Containers 功能(通过 Enable-WindowsOptionalFeature -Online -FeatureName containers -All -NoRestart)
  • Hypervisor Platform(若使用 process-isolated 容器可选;若用 Hyper-V 隔离则必须启用)
  • Microsoft Container Registry 访问权限(确保能拉取 mcr.microsoft.com/windows/servercore 等官方镜像)
  • 所有目标服务器需加入同一域,或已配置 WinRM HTTPS/NTLM 信任(用于 PowerShell 远程)

用 PowerShell 批量初始化容器主机

借助 Invoke-Command 在多台远程服务器上并行执行容器环境准备:

$servers = 'srv01', 'srv02', 'srv03'
$scriptBlock = {
  # 启用容器功能
  Enable-WindowsOptionalFeature -Online -FeatureName containers, Microsoft-Hyper-V -All -NoRestart
  Restart-Computer -Force
<h1>开机后自动安装 containerd(推荐替代 Docker Desktop)</h1><p>Invoke-WebRequest -Uri <a href="https://www.php.cn/link/9c31318fd616fab347dd8f689e8e6be1">https://www.php.cn/link/9c31318fd616fab347dd8f689e8e6be1</a> -OutFile $env:TEMP\containerd.tar.gz
Expand-Archive -Path $env:TEMP\containerd.tar.gz -DestinationPath $env:ProgramFiles\containerd -Force
"$env:ProgramFiles\containerd\containerd.exe" --register-service
Start-Service containerd
}
Invoke-Command -ComputerName $servers -ScriptBlock $scriptBlock -AsJob
</p>

注意:首次重启后需手动或通过后续 Job 补充配置 config.toml 和镜像仓库认证。

批量拉取镜像并启动容器实例

不依赖 Docker CLI 时,可用 containerd 的 ctr 工具进行脚本化操作(需提前将 ctr.exe 放入 PATH):

设计师AI工具箱
设计师AI工具箱

一款AI图像与设计工具,主要用于最懂设计师的效率提升平台,实现高效设计出图和智能改图,室内设计,毛坯渲染,旧房改造 ,软装设计,适合需要提升相关任务效率的用户。

下载
  • 用 ctr images pull mcr.microsoft.com/windows/servercore:ltsc2022 拉取基础镜像
  • 用 ctr run --net-host --rm -d mcr.microsoft.com/windows/servercore:ltsc2022 myapp-$($env:COMPUTERNAME) 启动带主机网络的容器
  • 将上述命令封装为函数,再通过 Invoke-Command 分发到各节点

示例片段:

function New-ContainerInstance {
  param($Image, $Name)
  ctr run --net-host --rm -d $Image $Name powershell -c "while(1){Write-Host 'Running on $env:COMPUTERNAME'; Start-Sleep 30}"
}
Invoke-Command -ComputerName $servers -ScriptBlock ${function:New-ContainerInstance} -ArgumentList 'mcr.microsoft.com/windows/servercore:ltsc2022', 'webserver'

对接 Kubernetes 实现真正集群能力

若目标是生产级集群,PowerShell 更适合作为辅助工具,而非主控平台:

  • 用 kubeadm 初始化控制平面后,通过 PowerShell 脚本为每台 Windows Worker 节点执行 kubeadm join 命令
  • 使用 kubectl apply -f 部署 flannel 或 calico 的 Windows 兼容 CNI 插件 YAML
  • 编写 PowerShell 函数解析 kubectl get nodes -o json 输出,校验 Windows 节点 Ready 状态

官方推荐路径是:先用 Ansible 或 Terraform 编排基础设施,再用 PowerShell 处理 Windows 特定配置(如 GMSA、主机防火墙规则、证书分发等)。

不复杂但容易忽略的是:Windows 容器集群高度依赖网络一致性(尤其是 DNS、NAT、host-gateway 模式)、GMSA 域账户权限和 Windows 更新策略。PowerShell 能高效驱动批量操作,但不能替代架构设计与平台选型。

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

900

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2732

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

916

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

809

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2476

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4592

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

747

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HBuilderX Windows 安装手册
HBuilderX Windows 安装手册

共0课时 | 0人学习

phpEnv手册
phpEnv手册

共0课时 | 0人学习

好课诞生记
好课诞生记

共20课时 | 7.1万人学习