You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins环境下使用Kubernetes Windows镜像构建DaemonSet报错求助

解决Windows Host Process容器镜像部署及BuildX安装问题

一、解决hcsshim::ImportLayer - failed 0x3f1注册表损坏错误

  1. 匹配节点OS与镜像版本
    Windows Host Process容器对版本兼容性要求严格,镜像的OS版本必须与Kubernetes节点的Windows版本完全一致。你成功运行的lts-nanoserver-1809对应Windows Server 2019(1809),请确认windows-host-process-containers-base-image:v1.0.0是否支持该版本——若镜像基于更高版本Nano Server(如20H2/21H2),在1809节点上会触发兼容性错误,导致注册表损坏提示。

  2. 清理节点镜像缓存
    在Windows节点执行以下命令清理损坏的镜像层,再重新拉取镜像:

docker system prune -af
docker volume prune -f
docker pull mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image:v1.0.0
  1. 修复节点系统注册表
    若节点本身存在注册表损坏,以管理员权限打开命令提示符执行:
sfc /scannow
dism /online /cleanup-image /restorehealth

重启节点后再次尝试启动容器。


二、解决Jenkins流水线中BuildX安装失败问题

若需用BuildKit构建自定义镜像,按以下步骤在Jenkins流水线中安装BuildX:

针对Linux Jenkins Agent

# 创建BuildX插件目录
mkdir -p "${HOME}/.docker/cli-plugins"
# 下载指定版本BuildX二进制(可替换为最新版本)
curl -L "https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-amd64" -o "${HOME}/.docker/cli-plugins/docker-buildx"
# 添加执行权限
chmod +x "${HOME}/.docker/cli-plugins/docker-buildx"
# 验证安装
docker buildx version

针对Windows Jenkins Agent

# 创建BuildX插件目录
$pluginDir = Join-Path $env:USERPROFILE ".docker\cli-plugins"
New-Item -Path $pluginDir -ItemType Directory -Force
# 下载指定版本BuildX二进制(可替换为最新版本)
Invoke-WebRequest -Uri "https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.windows-amd64.exe" -OutFile (Join-Path $pluginDir "docker-buildx.exe")
# 验证安装
docker buildx version

注意:确保Jenkins运行用户对插件目录有写入权限,必要时以管理员权限执行流水线步骤。


三、替代方案:直接用官方镜像部署DaemonSet

若自定义构建环节问题较多,可跳过本地构建,直接使用官方预构建镜像编写DaemonSet YAML:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: windows-host-process-ds
spec:
  selector:
    matchLabels:
      app: windows-host-process
  template:
    metadata:
      labels:
        app: windows-host-process
    spec:
      containers:
      - name: host-process-container
        image: mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image:v1.0.0
        securityContext:
          windowsOptions:
            hostProcess: true
            runAsUserName: "NT AUTHORITY\\SYSTEM"
      nodeSelector:
        kubernetes.io/os: windows

部署后检查Pod状态,确认是否能正常启动。


内容的提问来源于stack exchange,提问作者Adrian Cuevas Tavizon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:50:27