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

如何将本地磁盘文件复制到Azure AKS的虚拟机规模集(VMSS)实例

Azure VMSS 本地文件上传及扩容持久化问题解答

本地文件上传到VMSS指定目录的实现方案

你遇到的常规SCP的username@hostname格式无法使用的问题是正常现象,并非你遗漏配置:VMSS的单个实例默认没有独立的公网访问入口,通常是统一挂载在负载均衡后方,因此无法直接通过常规SSH/SCP的主机地址直连单个实例。
以下两种方案均支持命令行操作,可直接集成到PowerShell搭建的发布流水线中:

方案1:通过Azure管理平面执行命令拉取文件(生产环境推荐)

该方案无需开放VMSS的公网端口、无需配置SSH/WinRM对外暴露,完全走Azure官方管理通道,安全性和兼容性最高:

  • 第一步:将本地需要上传的文件上传到任意Azure存储账户的容器中,生成有效期足够的SAS访问链接,示例Azure CLI命令如下(PowerShell环境可直接调用Azure CLI,也可以换成对应Azure PowerShell模块命令):
    # 上传本地文件到存储容器
    az storage blob upload --account-name <存储账户名> --container-name <临时容器名> --name <云端存储文件名> --file <本地文件路径>
    # 生成只读SAS链接,有效期可根据需求调整,输出结果就是可直接访问的文件URL
    az storage blob generate-sas --account-name <存储账户名> --container-name <临时容器名> --name <云端存储文件名> --permissions r --expiry <UTC过期时间,例如2024-12-31T23:59:59Z> --full-uri --output tsv
    
  • 第二步:调用VMSS的run-command能力,让指定的VM实例主动拉取文件到目标路径:
    针对Linux实例的示例命令:
    az vmss run-command invoke --resource-group <资源组名> --name <VMSS名称> --instance-id "*" --command-id RunShellScript --scripts "wget <上一步生成的SAS文件URL> -O <目标目录路径/文件名>"
    
    针对Windows实例的示例命令:
    az vmss run-command invoke --resource-group <资源组名> --name <VMSS名称> --instance-id "*" --command-id RunPowerShellScript --scripts "Invoke-WebRequest -Uri '<上一步生成的SAS文件URL>' -OutFile '<目标目录路径\文件名>'"
    
    其中--instance-id "*"代表对VMSS下所有现有实例执行操作,如果只需要上传到指定实例,替换为对应实例ID即可。

方案2:配置网络后使用SCP上传

如果必须使用SCP协议操作,需要先对VMSS网络做适配配置:

  • 优先给VMSS实例配置实例级公网IP,或者在前端负载均衡上配置NAT规则,将不同的公网端口映射到不同VM实例的22(SSH)/5985/5986(WinRM)端口
  • 配置完成后即可用常规SCP命令上传,示例:
    scp -P <映射的公网端口号> <本地文件路径> <实例用户名>@<负载均衡公网IP/实例公网IP>:<目标目录路径>
    
    该方案需要额外开放公网端口,安全性较低,不推荐生产流水线使用。

VMSS扩容时的文件持久化说明

提前拷贝到现有VM实例本地磁盘的文件,新扩容的实例不会自动包含。VMSS的新实例始终是基于你配置的原始基础镜像生成,后续手动写入现有实例本地磁盘的内容不会同步到基础镜像中,因此扩容生成的新实例默认只有基础镜像的初始内容,不存在你之前拷贝的文件。
如果需要新扩容的实例自动包含所需文件,可选择以下两种方案:

  • 将所需文件提前打包到自定义镜像中,VMSS配置为从该自定义镜像创建实例,所有新实例启动就自带对应文件
  • 给VMSS配置自定义脚本扩展(Custom Script Extension),设置实例启动时自动从存储地址拉取所需文件到指定目录,所有新实例(包括扩容生成的实例)启动时会自动执行该脚本,无需每次手动拷贝。

内容的提问来源于stack exchange,提问作者BrutalDev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:54:04