Azure Stack Hub 租户日常操作:从订阅到 VM、VMSS、监控与 ARM 模板

未经同意,请勿转载!

****本文聚焦租户视角下能做什么、不能做什么、推荐的实操路径------从订阅创建开始,到虚拟网络、NSG、VM、VMSS、监控和 ARM 模板,构成完整的租户操作蓝图。

系列预告 :本篇为 三篇运维实战系列第 2 篇(租户篇)

  • 第 1 篇(管理员篇):Azure Stack Hub 管理员日常操作 ------ StampInformation、管理员门户、PEP、区域管理、容量监管。
  • 第 2 篇(本文·租户篇):用户操作 ------ 订阅创建、虚拟网络、NSG、VM、VMSS、监控、ARM 模板部署。
  • 第 3 篇(报修篇):报修与技术支持 ------ Dell + Microsoft 双供应商协同支持流程、SLA 升级路径、紧急联系方式。

版本基础 :本文基于 azs-2005 至当前主流 azs 版本 (覆盖 azs-2002 / 2005 / 2102 / 2206 / 2301 / 2405 / 2503 等)的 Azure Stack Hub Tenant 文档整理。不同 azs 版本以及不同 OEM 集成系统(Lenovo ThinkAgile / Dell APEX / HPE Edgeline 等)之间可能存在差异 ------当版本与本文表述不一致时,以当期版本 Azure Stack Hub User Documentation + 当期 azs 版本 Release Notes 为准。


修订说明:

本篇为 Azure Stack Hub 运维管理三篇系列 · 租户篇首发版,基于内训材料《Azure Stack Hub 运维管理》整理,按四层原则做工程化改写。

目录

  1. [租户操作全景:从订阅到 ARM 模板的"完整生命周期"](#租户操作全景:从订阅到 ARM 模板的"完整生命周期")
  2. 租户与管理员的边界:能做什么、不能做什么
  3. 创建订阅:租户的"入口动作"
  4. 创建虚拟网络(vNet):租户网络的"主结构"
  5. 创建网络安全组(NSG):流量控制的"第一道闸"
  6. [子网关联 NSG:让规则"覆盖整个子网"](#子网关联 NSG:让规则"覆盖整个子网")
  7. [公共 IP 地址:让 VM 拥有"对外可达性"](#公共 IP 地址:让 VM 拥有"对外可达性")
  8. 创建虚拟机(VM):完整路径整合
  9. [VM 大小选择:F2s_v2 与所有可选系列的边界](#VM 大小选择:F2s_v2 与所有可选系列的边界)
  10. [连接到 VM:RDP 与 NSG 端口的联动](#连接到 VM:RDP 与 NSG 端口的联动)
  11. 创建虚拟机规模集(VMSS):可横向扩展层
  12. [VMSS 扩容:手动调实例计数从 2 到 3](#VMSS 扩容:手动调实例计数从 2 到 3)
  13. [监控 VM 指标:注册 Microsoft.Insights](#监控 VM 指标:注册 Microsoft.Insights)
  14. [ARM 模板部署:使用快速入门模板](#ARM 模板部署:使用快速入门模板)
  15. 四层原则落地:租户操作的全景分层
  16. 三大误判信号:租户最容易踩的坑
  17. 三条操作红线:租户绝对不能越的边界
  18. 租户篇小结:八类典型操作的工程化整合

1. 租户操作全景:从订阅到 ARM 模板的"完整生命周期"

Azure Stack Hub 租户(Tenant)在日常运维中需要执行的典型操作集中在以下八类:

复制代码
           Azure Stack Hub 租户日常操作(按典型顺序)
                          │
        ┌─────────────────┼─────────────────────┐
        │                 │                     │
      第 1 步          第 2 步                第 3 步+
    拿订阅          配网络                    建资源
        │                 │                     │
        ▼                 ▼                     ▼
   创建订阅       vNet / NSG / Subnet       VM / VMSS / ARM
        │
        ▼
   选 Offer
        │
        ▼
   订阅上线

核心操作清单(按业务流顺序)

步骤 操作 入口 L 分类
1 登录用户门户 portal.<region>.<FQDN> L1 微软硬要求
2 创建订阅 "所有服务和订阅" → 添加 L1 微软硬要求
3 创建虚拟网络 创建资源 → 虚拟网络 L1 微软硬要求
4 创建 NSG 创建资源 → 网络安全组 L1 微软硬要求
5 子网关联 NSG vNet → 子网 → 关联 NSG L1 微软硬要求
6 创建公共 IP 创建资源 → 公共 IP L1 微软硬要求
7 创建 VM 创建资源 → Windows Server / Linux L1 微软硬要求
8 选择 VM 大小 F2s_v2 等 L0 版本事实(大小集随版本变化)
9 连接 VM RDP / SSH + NSG 入站规则 L1 微软硬要求
10 创建 VMSS 创建资源 → 虚拟机规模集 L1 微软硬要求
11 监控 VM 指标 注册 Microsoft.Insights L1 微软硬要求
12 ARM 模板部署 模板部署 → 快速入门 L1 微软硬要求

核心工程取舍 :以上八类操作可以全部通过用户门户完成 ------但频繁操作应当用 ARM 模板或 Operator PowerShell自动化(详见第 14 节)。


2. 租户与管理员的边界:能做什么、不能做什么

Azure Stack Hub 的租户 / 管理员分界通过 RBAC(基于角色的访问控制)和作用域(Subscription / Resource Group)划分:

2.1 租户可以做的 8 类操作

# 操作 典型工具
1 创建 / 删除 / 修改自己订阅下的资源(VM / vNet / 存储 / DB 等) 用户门户 / ARM 模板
2 在自己订阅下创建 Resource Group 用户门户
3 申请配额调整(向管理员) 用户门户
4 查询自己资源的指标 / 监控(依赖 Microsoft.Insights 注册) 用户门户 → 监视
5 使用 ARM 模板部署复杂资源组合 用户门户 → 模板部署
6 在订阅下创建其他用户并分配 RBAC 角色(订阅所有者及以上) 用户门户 → IAM
7 查看自己的使用情况和配额使用 用户门户 → 订阅
8 把资源部署到 Marketplace 中已发布的镜像 用户门户

2.2 租户不能做的 6 类操作

# 不可做的操作 越界原因
1 修改 Azure Stack Hub 基础设施(Stamp / Scale Unit / Capacity 等) 不在租户订阅范围内
2 修改 ToR / 网络物理配置 不在租户订阅范围内
3 直接修改其他租户的订阅 跨订阅隔离
4 部署 Marketplace 未发布的镜像 Marketplace 由管理员控制
5 修改管理员门户的配置 入口隔离(不同 URL)
6 在自己订阅下做"管理员门户级 plan / offer 变更" plan/offer 是管理员域的对象

L1 微软硬要求:上述边界由微软 RBAC 模型强制执行------租户在门户看不到非自己订阅的资源,尝试访问会被门户自动拒绝(即使是合法访问也会被"友好的"门户 UI 隐藏)。

2.3 不确定时怎么办

L3 最佳实践:当你不确定一个操作是否属于租户权限范围时:

  1. 看门户可见性:在用户门户看不到的,几乎可以确定不在租户域。
  2. 看异常消息:尝试操作时被门户 / API 拒绝的,通常超出权限。
  3. 找管理员:通过 IT 服务台转给 Azure Stack Hub 管理员。
  4. 不要试错不要"通过端口扫描 / SSH 尝试去找基础设施入口"------这是安全事件而非操作。

3. 创建订阅:租户的"入口动作"

3.1 为什么订阅是"入口动作"

在 Azure Stack Hub 上,所有租户操作的资源都是 Subscription 之内的------没有订阅就没有"租户工作空间"。

L1 微软硬要求 :Azure Stack Hub 的 Subscription 与 Azure 公有云 Subscription 概念上等价 ------ 同一个租户可以在 Azure 公有云和 Azure Stack Hub 各有订阅,但两者不互通

3.2 标准操作步骤

精简

  • 打开 Azure Stack Hub 用户门户并使用用户账户登录。
  • 单击"所有服务和订阅"。
  • 单击"添加"并为您的订阅命名。
  • 选择目标 Offer。
  • 创建后,刷新门户。
  • "订阅"现在将显示界面中。

3.3 操作示意图

复制代码
┌────────────────────────────────────────────────┐
│ 1. 打开用户门户                                    │
│    https://portal.<region>.<FQDN>                │
│    使用租户账户登录                                │
└────────────────────────────────────────────────┘
                    │
                    ▼
┌────────────────────────────────────────────────┐
│ 2. 单击"所有服务" →"订阅"                          │
└────────────────────────────────────────────────┘
                    │
                    ▼
┌────────────────────────────────────────────────┐
│ 3. 单击"+"添加按钮                                  │
│    - 订阅名称:用户自定义                           │
│    - 目录:选择 AAD 租户                            │
│    - Offer:选择管理员预先创建的 Offer              │
└────────────────────────────────────────────────┘
                    │
                    ▼
┌────────────────────────────────────────────────┐
│ 4. 创建完成 → 刷新门户 → 订阅显示在列表中            │
└────────────────────────────────────────────────┘

3.4 选择 Offer 的工程含义

L3 最佳实践:选择 Offer 不是"随便选"------每个 Offer 由管理员预先定义,包含了:

  • 可用资源类型(某些 Offer 可能不含 Kubernetes / SQL 等高级资源)
  • 配额上限(订阅下可以创建多少 VM / 多少存储)
  • 计费策略(订阅如何被记账)

建议租户在创建前先确认 Offer 与业务需求匹配------例如"业务需要 50 个 VM,但 Offer 配额只允许 10 个",此时需先找管理员调整。

3.5 常见误判

L3 最佳实践 :租户首次接触 Azure Stack Hub 的最容易误判 是:"我能从 Azure 公有云导入订阅吗?"------答案是否定的。每个 Azure Stack Hub 实例的订阅是本地独立的。


4. 创建虚拟网络(vNet):租户网络的"主结构"

4.1 vNet 在 Azure Stack Hub 中的位置

精简

  • 打开 Azure Stack Hub 用户门户并使用用户账户登录。
  • 单击"创建资源",键入"虚拟网络",然后单击"虚拟网络"资源的"创建"。
  • 填写"创建虚拟网络"边栏选项卡中的必填字段。

4.2 必填字段详解

字段 填写建议 L 分类
名称 全租户内唯一,遵循团队命名约定 L3 最佳实践
地址空间 私网段(如 10.x / 172.16-31.x / 192.168.x) L1 微软硬要求
资源组 同一业务的资源放到同一 RG,便于管理 L3 最佳实践
位置 通常保持默认 L2 OEM 实现差异
子网 至少一个;后续可调整 L1 微软硬要求
子网地址段 比 vNet 地址空间小;首尾预留 L1 微软硬要求

4.3 vNet 与 Azure 公有云的差异

维度 Azure Stack Hub Azure 公有云
默认地址空间 任意 RFC1918 私网段
跨 vNet 对等 支持有限版本(取决于当期 azs 版本) 完全支持
vNet-to-vNet VPN 支持 支持
虚拟 WAN 通常不支持(L2 OEM 实现差异) 完全支持
ExpressRoute 不直接支持(需通过 S2S VPN) 支持

L0 版本事实 :vNet-to-vNet 对等的支持度因 azs 版本变化------以当期 Azure Stack Hub User Documentation 为准


5. 创建网络安全组(NSG):流量控制的"第一道闸"

5.1 NSG 是什么

NSG(Network Security Group)是租户侧最常用的流量控制对象,包含一组基于规则的访问控制列表(ACL)。每条规则匹配:

  • 源 IP / 目标 IP
  • 源端口 / 目标端口
  • 协议(TCP / UDP / Any)
  • 方向(入站 / 出站)
  • 动作(允许 / 拒绝)

5.2 标准操作步骤

精简

  • 在 Azure Stack Hub 用户门户上,单击"创建资源",键入并选择"网络安全组",然后单击"创建"。
  • 填写"创建网络安全组"边栏选项卡中的必填字段,并选择之前使用的相同资源组名称。
    关键点 :NSG 通常和 vNet 放在同一个 Resource Group------便于统一管理。

5.3 NSG 与 vNet / NIC / 子网的关系

复制代码
          ┌──────────────────────────┐
          │       vNet                │
          │   ┌──────────────────┐   │
          │   │     Subnet        │   │
          │   │   ┌───────────┐   │   │
          │   │   │   VM      │   │   │
          │   │   │  ┌─────┐  │   │   │
          │   │   │  │ NIC │  │   │   │
          │   │   │  └──┬──┘  │   │   │
          │   │   │     │     │   │   │
          │   │   └─────│─────┘   │   │
          │   └───────│──────────┘   │
          │           │              │
          │     ┌─────┴─────┐        │
          └─────│     NSG    │────────┘
                └───────────┘
                    △                △
                    │                │
              关联到 Subnet     关联到 NIC
              (推荐)         (可选)

L1 微软硬要求 :NSG 可以关联到子网 (推荐)和/或NIC (可选)。当两者都关联时,规则评估是叠加的------任一层拒绝,都会拒绝流量。

5.4 NSG 默认规则

L1 微软硬要求 :每个新建的 NSG 默认包含 6 条规则------这是微软内置的"基线规则集",未经用户操作不应删除:

规则 优先级 方向 动作 说明
AllowVnetInBound 65000 入站 Allow 同 vNet 内互访
AllowAzureLoadBalancerInBound 65001 入站 Allow LB 健康探测
DenyAllInBound 65500 入站 Deny 默认全部拒绝
AllowVnetOutBound 65000 出站 Allow 同 vNet 内出
AllowInternetOutBound 65001 出站 Allow 出公网默认允许
DenyAllOutBound 65500 出站 Deny 默认全部拒绝

L3 最佳实践 :当远程连接不工作时,先看这 6 条默认规则 ------常见的"连不上"问题是默认 DenyAllInBound 没被显式规则覆盖。


6. 子网关联 NSG:让规则"覆盖整个子网"

6.1 操作步骤

精简

  • 返回到 Azure Stack 用户门户主仪表板,然后单击创建的 vNet。
  • 选择"子网",然后单击"+子网"按钮。
  • 为此子网提供名称,然后选择之前创建的 NSG。
  • 单击"确定"后,NSG 将应用于整个子网。

6.2 子网关联 NSG 的"整体效应"

复制代码
子网 A
┌────────────────────┐
│ VM-01 [NIC A1]      │ ← 流量进入 → NSG 检查 → 通过
│ VM-02 [NIC A2]      │ ← 流量进入 → NSG 检查 → 通过
│ VM-03 [NIC A3]      │ ← 流量进入 → NSG 检查 → 通过
└────────────────────┘
          │
          ▼
     NSG-Subnet-A
     (规则集 R)

关联到子网后,子网内所有 VM 都受同一组规则约束------这是把 NSG 用作"默认安全门"的推荐方式。

6.3 NSG 规则评估顺序

L1 微软硬要求 :当 VM 收到的流量进入 NSG 时,规则按优先级从低到高评估

  • 优先级数字小 = 优先评估
  • 命中第一个匹配规则即停 ------ 不会继续评估后面的规则
  • 系统默认规则优先级为 65000-65500,用户规则应使用 100-4096 区间避免和系统规则冲突
    L3 最佳实践 :写 NSG 规则时先做"流量清单"------列出所有"应该允许"和"应该禁止"的流量,然后按"小范围允许 → 大范围拒绝"的顺序写规则。

7. 公共 IP 地址:让 VM 拥有"对外可达性"

7.1 操作步骤

精简

  • 在 Azure Stack 用户门户上,单击"创建资源",键入并选择"公共 IP",单击"创建"。
  • 填写"创建公共 IP 地址"页面中的必填字段。

7.2 公共 IP 关键参数

字段 选项 含义
SKU Basic / Standard Basic 用于 Azure Stack Hub(Standard 通常 Azure 公有云专属)
分配 静态 / 动态 静态 IP 更稳定(推荐)
空闲超时 4-30 分钟 TCP 连接空闲超时
DNS 名称标签 可选 用于 *.region.FQDN 寻址

7.3 与 NSG 的配合

公共 IP 本身不控制流量 ------流量控制由 NIC 上 / 子网上的 NSG 决定。这是常被新租户误解的点:

L3 最佳实践·常见误判 :租户常常认为"创建了公共 IP 就能被外网访问"------事实上必须有 NSG 入站规则允许才能真正可达。


8. 创建虚拟机(VM):完整路径整合

8.1 操作流程

整合

  • 单击"创建资源",键入"Windows Server",选择"Windows Server 2019 Datacenter"映像,然后单击"创建"。
  • 在边栏选项卡中填写所需信息,并在准备就绪后单击"确定"。
  • 为当前虚拟机选择任意大小 ------ 为简单起见,请使用 F2s_v2 标准大小。
  • 选择所需的 VM 大小后,单击"选择"。
  • 选择之前创建的虚拟网络、子网(不要使用默认子网,选择之前创建的子网)和公共 IP。
  • 对于网络安全组,请单击"高级",然后选择"新建"NSG(以前创建的 NSG 已应用于子网,现在创建的 NSG 将应用于此 VM)。
  • 查看"摘要"页,然后单击"确定"以创建 VM。

8.2 创建 VM 的资源关系图

复制代码
Resource Group(业务 RG)
  ├── vNet
  │   ├── Subnet-A (关联 NSG-Subnet-A)
  │   │   ├── VM-01
  │   │   │   ├── NIC-A1 (关联 NSG-NIC-A1)
  │   │   │   ├── OS Disk (托管磁盘)
  │   │   │   ├── Data Disk (可选)
  │   │   │   └── Public IP-A1
  │   │   └── VM-02
  │   │       ├── NIC-A2
  │   │       ├── OS Disk
  │   │       └── ...
  │   └── Subnet-B
  └── NSG-Subnet-A (关联到 Subnet-A)

8.3 关键选择

8.3.1 必填字段
字段 建议
VM 名称 命名规范
资源组 与 vNet 一致
映像 Windows Server / Linux 各类
大小 见 §9
身份验证 用户名 / 密码 或 SSH 公钥
磁盘类型 HDD 标准 / SSD 标准 / Premium SSD
8.3.2 网络选择(关键)

特别强调不要使用默认子网,选择之前创建的子网 。这是一个被很多租户忽略的"陷阱"------默认子网在门户中以灰色显示,如果不主动改,VM 会被放到一个没有任何 NSG 关联的子网。

8.3.3 NSG 选择(关键)

特别强调以前创建的 NSG 已应用于子网,现在创建的 NSG 将应用于此 VM

这是 Azure Stack Hub 推荐的**"双层 NSG"模式**:

  • 子网层 NSG:通用规则(如允许 vNet 内部互访)
  • VM 层 NSG:特定规则(如允许到该 VM 的 RDP 端口)

L1 微软硬要求 :当流量同时经过两层 NSG 时,每层都允许才允许通过


9. VM 大小选择:F2s_v2 与所有可选系列的边界

9.1 建议

为当前虚拟机选择任意大小 ------ 为简单起见,请使用 F2s_v2 标准大小。

F2s_v2 是 2 vCPU + 4 GiB RAM 的 Standard 通用系列,对应入门测试 / POC 场景。

9.2 VM 大小集的版本依赖

系列 类型 适用场景 L 分类
F / Fs / Fsv2 通用 通用负载 L0 版本事实
D / Ds / Dv2 / Dsv2 / Dsv3 通用优化 中等通用负载 L0 版本事实
E / Esv3 内存优化 内存型负载 L0 版本事实
M 大内存 大内存数据库 L0 版本事实
H 系列 高性能计算 HPC L2 OEM 实现差异
N 系列(GPU) GPU 加速 AI / 推理 L2 OEM 实现差异
Lsv2 系列 存储优化 大 IO 负载 L2 OEM 实现差异

L0 版本事实当前主流 azs 版本 支持的 VM 大小集合随版本演进而变化 ------某些早期版本不支持的 SKU 可能在后续版本加入,反之亦然。具体以当期版本 Azure Stack Hub Capacity Planner / Release Notes 为准。

9.3 选型的工程取舍

业务场景 推荐大小
POC / 验证 F2s_v2 / F4s_v2
通用 Web Dsv3 / Dsv4
数据库 Esv3 / Esv4
大内存缓存 E_v3 系列
AI 推理 N 系列(GPU,受限于 OEM)
HPC H 系列

10. 连接到 VM:RDP 与 NSG 端口的联动

10.1 标准流程

精简

  • 单击 VM 的"网络"选项卡并检查两个 NSG,请注意应用于子网的 NSG 未打开端口 3389。
  • 单击"添加入站端口规则",然后按照边栏选项卡中的向导将端口 3389 添加为入站端口。
  • 单击"连接"并下载 RDP 文件。

10.2 RDP 流程图

复制代码
  远程桌面客户端
       │
       ▼
  (通过公网) → 公共 IP-A1:3389
                (static external)
                        │
                        ▼
              NSG-NIC-A1 检查入站
                ├─ 3389 / TCP  →  是否允许?
                │            ├─ Yes → 转发到 VM
                │            └─ No  → 拒绝(连接超时)
                ▼
              NSG-Subnet-A 检查入站
                ├─ 3389 / TCP  →  是否允许?
                │            ├─ Yes → 转发到 NIC
                │            └─ No  → 拒绝
                ▼
              VM-01 NIC-A1
              3389 端口监听 → RDP 协议握手

10.3 端口 3389 添加的关键步骤

L3 最佳实践(PPT 未展开详细步骤):添加入站规则时需明确:

  1. 协议:TCP(不是 UDP)
  2. * 或指定 IP 段(如 10.0.0.0/8)
  3. 目标:3389
  4. 动作:允许
  5. 优先级:100-200(建议用低优先级覆盖默认 Deny)
    安全注意 :生产环境不要把 3389 暴露给 *------应限制到运维堡垒机的 IP 段。

10.4 远程连接的工程取舍

远程入口 协议 默认端口 适用 OS
RDP TCP 3389 Windows
SSH TCP 22 Linux
WinRM TCP 5985/5986 Windows 远程 PowerShell
Bastion TCP 443 双 OS(通过 SSL 隧道)

L3 最佳实践 :Azure Stack Hub 的 Bastion 服务视当期 azs 版本 + OEM 实现------部分版本 / 客户环境不包含 Bastion,租户需自行准备堡垒方案。


11. 创建虚拟机规模集(VMSS):可横向扩展层

11.1 什么是 VMSS

Azure Stack Hub 的 VMSS 是租户最常用的"横向扩展"工具------一组基于同一映像、统一管理、可以统一调实例数的 VM 集合。

11.2 标准流程

精简

  • 打开 Azure Stack 用户门户并使用用户账户登录。
  • 单击"创建资源",然后选择"虚拟机规模集"。
  • 填写必填字段(将实例计数保留为 2)。

11.3 VMSS vs 多个独立 VM

维度 VMSS 独立 VM
统一管理
横向扩展 一键调实例数 需要分别操作
负载均衡 自动集成 需手动配置 LB
健康探测 自动 需手动配置
滚动升级 自动 需手动镜像替换
适用场景 无状态 Web / 计算 有状态 / 数据库

11.4 VMSS 的四大工程痛点

L3 最佳实践(PPT 未明说):使用 VMSS 时常见痛点:

  1. 数据持久化 ------VMSS 设计上假设 VM 是无状态的;新实例不带原数据。需要配合 Azure Files / 外部数据库存储状态。
  2. 冷启动延迟------横向扩展增加新实例时,新 VM 需要 2-3 分钟启动,业务需要预热或冷启动容忍。
  3. 手动调 vs 自动伸缩 ------当前 azs 版本的 VMSS 自动伸缩支持有限(视 OEM 实现),很多时候需要手动调实例数或用外部 cron 触发。
  4. 镜像版本控制------VMSS 用最新的模型,但新实例默认用创建时的镜像版本。修改镜像后需要手动触发升级。

12. VMSS 扩容:手动调实例计数从 2 到 3

12.1 第二步

通过将 VM 计数更改为 3 来纵向扩展 VMSS。

注意原文用了"纵向扩展"------但实际是横向扩展(scale out)。这可能是 PPT 内训材料的措辞不一致;本文按"横向扩展"理解。

12.2 操作

复制代码
门户 → 找到 VMSS → "缩放" → "手动实例数" → 改为 3 → 保存

12.3 状态变化

扩容过程中会经历多个状态:

状态 含义
Updating 扩容正在进行
Scaling 正在创建新实例
Healthy 所有实例都健康
Unhealthy 有实例异常(需看警报)

L1 微软硬要求 :扩容过程不是瞬时的------单实例启动时间取决于 OEM 硬件配置、市场镜像大小、备份恢复策略等。


13. 监控 VM 指标:注册 Microsoft.Insights

13.1 为什么需要注册 RP

精简

  • 打开 Azure Stack 门户并使用用户账户登录。
  • 单击"订阅"资源并选择一个订阅。
  • 单击"资源提供程序",然后单击"Register Microsoft.Insights"。
  • 几分钟后,指标将显示在每个 VM 的"概述"边栏选项卡中。

13.2 Microsoft.Insights 在 Azure Stack Hub 中

能力 Azure Stack Hub 支持 Azure 公有云
VM 基础指标(CPU / 内存 / 网络) 支持 支持
Application Insights 通常不支持(部分 azs 版本可) 完全支持
Log Analytics 工作区 受限支持(L2 OEM 差异) 完全支持
Metrics Advisor 不支持 支持
Alerts / Action Groups 部分支持(取决于 azs 版本) 完全支持
诊断设置 支持(部分资源类型) 完全支持

L0 版本事实 :上面表格中"M/Microsoft.Insights 可用范围"随当期 azs 版本而变化 ------本文以当前主流版本能力为准。未来版本可能扩展或限制某些 Insights 能力。

13.3 VM 级别的可用指标

注册 Microsoft.Insights 后,VM "概述"页面通常显示以下指标:

指标 单位 含义
Percentage CPU % CPU 使用率
Available Memory Bytes GB 可用内存
Disk Read/Write Bytes MB/s 磁盘 I/O
Network In/Out KB/s 网络流量

13.4 监控的局限

L3 最佳实践

  • 租户级监控只覆盖自己订阅内的资源------无法看到 Azure Stack Hub 基础设施级指标。
  • 监控数据保留期有限(视 OEM 实现,通常 30-90 天)。
  • 高级监控(如 Application Insights)需要 SaaS 服务------通常 Azure Stack Hub 上不部署。

14. ARM 模板部署:使用快速入门模板

14.1 什么是 ARM 模板

ARM(Azure Resource Manager)模板是声明式的 JSON 文件,用于描述"一组资源应该如何被创建"。这是 Azure Stack Hub / Azure 公有云统一的资源描述方式。

14.2 标准流程

精简

  • 打开 Azure Stack 用户门户并使用 aadUserName 用户登录。
  • 单击"创建资源",然后选择"模板部署"。
  • 选择"编辑模板",然后单击"快速入门模板"。
  • 选择"101-vm-windows-create"模板,然后单击"保存"。
  • 添加所需的参数并选择新的资源组。
  • 单击"通知"和新创建的"正在进行部署"以检查部署的状态。

14.3 模板的工程价值

价值 描述
可重复 同一模板可在多个环境中部署
可版本控制 JSON 文件纳入 Git,享受版本管理
可审计 部署历史可查
可复合 一个模板可包含多种资源(VM + vNet + Disk + NSG)

14.4 "101-vm-windows-create" 模板来源

L3 最佳实践

  • 这个模板不是 Azure Stack Hub 内置的 ------ 它来自 Microsoft QuickStart Templates(GitHub 上的开源仓库)
  • GitHub 路径:Azure/azure-quickstart-templates(具体路径以当期 GitHub 为准)
  • 该模板是为 Azure 公有云设计的,在 Azure Stack Hub 上可能需要调整
  • 不要假设公有云模板在 Azure Stack Hub 上 100% 可用------某些资源类型(如 Azure Kubernetes Service / Functions)在 Azure Stack Hub 上可能不支持

14.5 部署后的状态检查

部署过程会经历:

状态 含义
Accepted 接受部署请求
Running 正在创建资源
Succeeded 所有资源创建成功
Failed 部分 / 全部失败(看错误码)

L1 微软硬要求Failed 状态的资源可能已部分创建------失败后不要"再点一次"------这会导致重复创建。需要先删除已创建部分,再重新部署。

14.6 模板 vs 门户的工程取舍

维度 模板 门户
首次部署 复杂 简单
重复部署 极快
CI / CD 必需 不支持
团队协作 通过 Git 个人本地
审计 完整

L3 最佳实践"模板管基准,门户管临时" ------ 关键基础设施用模板管,临时调试用门户。


15. 四层原则落地:租户操作的全景分层

将租户日常操作按 L0 版本事实 / L1 微软硬要求 / L2 OEM 实现 / L3 最佳实践 四个层级重新梳理:

操作 层级 说明
订阅必须是基于管理员预先定义的 Offer 创建 L1 微软硬要求 这是 RBAC + 计费设计
租户看到的 VM 大小集合是当期 azs 版本 + OEM 决定的子集 L0 版本事实 跨版本 / 跨 OEM 演化
NSG 规则评估顺序(优先级从小到大,先匹配先终止) L1 微软硬要求 这是 Azure RM 设计
NSG 默认 6 条规则集(AllowVnet/DenyAll 等) L1 微软硬要求 微软内建基线
VMSS 实例启动时间 L0 版本事实 取决于硬件 + 镜像
Microsoft.Insights 在 Azure Stack Hub 上的能力边界 L0 版本事实 跨版本演进
"101-vm-windows-create" 模板来自 Azure QuickStart 仓库 L2 OEM 实现差异 公有云模板,需要适配
公共 IP 的 SKU(Basic / Standard)可用性 L2 OEM 实现差异 部分 azs / OEM 只支持 Basic
选择"F2s_v2"为简单 POC 起步 L3 最佳实践 不是必须,是推荐
子网 NSG + NIC NSG 双重防护模型 L3 最佳实践 来自微软安全最佳实践
RDP 暴露给 * 仅限测试 L3 最佳实践 来自安全运维经验
VMSS 数据持久化需要外部存储 L3 最佳实践 VMSS 是无状态设计
ARM 模板应纳入 Git 版本控制 L3 最佳实践 来自 Azure 架构最佳实践

15.1 跨版本的演进风险

L0 版本事实:以下特性随 azs 版本演进而可能变化:

  • 用户门户中 "创建资源" 的搜索 / 推荐逻辑
  • VMSS 自动伸缩支持的指标 / 触发器
  • Microsoft.Insights 暴露的指标集合
  • Marketplace 镜像清单
  • 公共 IP SKU 集合

16. 三大误判信号:租户最容易踩的坑

16.1 误判 #1:F2s_v2 不够用就怪 Azure Stack Hub

现象:租户用 F2s_v2 跑数据库,发现性能不够,认为 Azure Stack Hub 性能差。

原因

  • F 系列是通用基础------适合 POC / 调试。
  • 数据库等内存型负载应该用 Esv3 / Esv4 系列(内存优化)。

处理方法先选型再选大小,不要用 F2s_v2 跑全生产。

16.2 误判 #2:NSG 创建了就有规则

现象:租户创建 NSG 后,连接不上 VM。

原因

  • 新建 NSG 的默认 6 条规则中没有"允许 RDP 3389 入站"------只允许 vNet 内部。
  • 必须手动添加入站规则才能从外网 RDP。

处理方法:连接不上 VM 时,先检查 NSG 是否显式放行了 3389。

16.3 误判 #3:VMSS 扩容后数据"应该"还在

现象:VMSS 从 2 扩到 3 后,业务发现新实例没有之前的缓存 / 数据。

原因

  • VMSS 设计上实例之间不共享本地存储
  • 持久化必须用外部 Azure Stack Hub 存储服务(如 Blob / Files / 数据库)。

处理方法 :业务代码必须无状态化------状态放到外部存储。

16.4 误判 #4:监控未注册 Insights 就看不到指标

现象:租户在 VM "概述"页面看到 "Metrics not available"。

原因

  • Azure Stack Hub 的 VM 监控依赖 Microsoft.Insights RP 注册。
  • 未注册时该 RP 时,VM 指标不显示。

处理方法 :订阅 → 资源提供程序 → 注册 Microsoft.Insights(等几分钟)。

16.5 误判 #5:使用了 Azure 公有云模板就一定能跑

现象:租户从 GitHub 上 copy 了 Azure 公有云的 ARM 模板,部署失败。

原因

  • Azure Stack Hub 不是 Azure 公有云的镜像------某些资源类型 / API 版本不支持。
  • 模板中的 apiVersion 字段必须在 Azure Stack Hub 上可用。

处理方法 :使用 Azure Stack Hub 官方验证过的模板自行测试过的模板


17. 三条操作红线:租户绝对不能越的边界

L1 微软硬要求 + L3 最佳实践 。以下三条是 Azure Stack Hub 租户在日常运维中绝对不能越的边界。

17.1 红线 #1:不绕过 RBAC 访问其他租户的订阅

越界行为 后果
借用其他租户账户访问非自己订阅 触发安全审计事件
修改 RBAC 角色为自己赋 Owner 不可逆(管理员才能回退)
通过后门 API 调用非自己资源 通常被 API 自动拒绝

17.2 红线 #2:不在生产时段做大范围删除

越界行为 后果
删除活跃订阅 立即回收所有资源(VM / 磁盘 / IP 等)
删除 Resource Group 同上(更广)
删除关键 NSG 规则 短暂业务中断

L3 最佳实践 :所有"大范围变更"应在维护窗口 执行,并预留恢复时间

17.3 红线 #3:不在自己的 Azure Stack Hub 订阅中放敏感数据

越界行为 风险
把生产数据库密钥嵌入代码 / 模板 一旦模板外泄,密钥失控
RDP 3389 暴露给 * 暴露给全互联网,攻击面极大
在 VM 上禁用 Windows Update 失去 OEM 安全补丁通道

L3 最佳实践敏感数据走 Key Vault (Azure Stack Hub 支持),RDP 限制到堡垒 IP遵循 OEM 安全基线

17.4 与第 1 / 第 3 篇的衔接

  • 第 1 篇(管理员篇):覆盖管理员如何管理租户可见的全局资源(plan / offer / 容量等)。
  • 第 3 篇(报修篇):当租户操作触发支持需求(如 VM 性能异常 / 容量触顶 / Marketplace 问题)时如何报修。

18. 租户篇小结:八类典型操作的工程化整合

18.1 操作清单速查

# 操作 入口 自动化建议
1 创建订阅 用户门户 脚本创建(PowerShell / CLI)
2 创建 vNet 创建资源 推荐 ARM 模板
3 创建 NSG 创建资源 推荐 ARM 模板
4 子网关联 NSG vNet → 子网 推荐 ARM 模板
5 创建公共 IP 创建资源 推荐 ARM 模板
6 创建 VM 创建资源 推荐 ARM 模板 + 镜像库
7 远程连接 VM RDP / SSH Bastion / 堡垒
8 创建 VMSS 创建资源 推荐 ARM 模板
9 监控 VM 资源提供程序 + 概述 自动化 RP 注册
10 ARM 模板部署 模板部署 CI / CD 流水线

18.2 推荐的操作工程模型

复制代码
       一次配置                  重复操作
    ┌──────────────┐         ┌──────────────────┐
    │              │         │                  │
    │   ARM 模板    │   ───→  │   CI / CD 流水线  │
    │ (JSON + Git) │         │ (GitHub Actions) │
    │              │         │                  │
    └──────────────┘         └──────────────────┘
                                       │
                                       ▼
                              Azure Stack Hub 用户门户
                              Operator PowerShell
                              模板部署

L3 最佳实践

  • 基线设施用模板------vNet / NSG / Subnet 等"创建一次、长期不变"的基础设施,用 ARM 模板管理,纳入 Git 版本控制。
  • 重复操作走流水线------CI / CD(GitHub Actions / Azure DevOps 等)触发 ARM 模板部署。
  • 临时调试走门户------单次试验 / 调试用用户门户。
  • 监控走 RP ------Microsoft.Insights 注册后用门户 / API 看指标。

18.3 跨篇衔接

  • 基础设施变更:超出租户权限的(如创建 plan / offer),找管理员------见第 1 篇。
  • 故障 / 性能问题:超出文档范围的,找 OEM + 微软支持------见第 3 篇。

附录 A:本文核心模板 / 命令快速参考

A.1 创建订阅(PowerShell 示例)

复制代码
# 登录(注意:当前主流 azs 版本可能需要用 -EnvironmentName AzureStackHub 之类参数)
Connect-AzAccount -EnvironmentName "AzureStackHubUser"

# 创建订阅
New-AzSubscription `
    -OfferName "<管理员预定义的 Offer 名>" `
    -Name "我的订阅" `
    -TenantId "<当前 AAD 租户 ID>"

A.2 注册 Microsoft.Insights RP

复制代码
Register-AzResourceProvider -ProviderNamespace "Microsoft.Insights"

A.3 通过 ARM 模板部署(CLI 示例)

复制代码
az stack-hub deployment create \
    --resource-group <RG> \
    --template-file <template.json> \
    --parameters @<parameters.json>

L1 微软硬要求 :上述命令语法以当期 azs 版本对应的"Azure Stack Hub User Documentation" 为准;azs CLI / PowerShell 模块的版本依赖较强。


附录 B:本文相关资源链接参考

L0 版本事实 :以下链接随微软 docs 演进可能变化------应以当期 azs 版本对应的"Azure Stack Hub User Documentation" 为准。

  • Azure Stack Hub User Documentation 入口:https://learn.microsoft.com/en-us/azure-stack/user/ (具体页面以当期微软文档树为准)
  • ARM 模板参考:https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/ (Azure 公有云参考;Azure Stack Hub 上需验证 API 版本可用性)
  • Azure QuickStart Templates(GitHub):https://github.com/Azure/azure-quickstart-templates (公有云模板,需要适配)

本文版本 :v1.0(首发 · 2026-07-30) 维护 :Azure Stack Hub 运维管理三篇系列 · 租户篇 写作依据 :内训演示材料《Azure Stack Hub 运维管理》(用户操作章节)整理 + 微软 User Documentation + 实操经验 下次修订触发:azs 重大版本升级、Marketplace 镜像集合重大变化、Microsoft.Insights 在 Azure Stack Hub 能力边界变化

相关推荐
XUHUOJUN16 小时前
Azure Stack Hub 报修与技术支持:Dell + Microsoft 双供应商协同支持流程
架构·azure stack
储能李大坤16 小时前
125kW SiC双向储能变流器模块技术拆解:三电平拓扑 + SiC功率器件 + 双DSP控制架构详解
架构
红莲凪是18 小时前
夜莺监控的几种架构模式详解
架构
lemon_sjdk19 小时前
Spring WebFlux 响应式编程深度解析:从架构选型到核心抽象
java·spring·架构
玛艾露贝19 小时前
Supabase云同步架构:Flutter应用的数据同步策略
flutter·架构
summer_west_fish19 小时前
企业架构的概念方法与实践
微服务·云原生·架构
王大大的刀19 小时前
从 Prompt 工程到知识库驱动:一次自动化率跌至 6% 后的架构反思
人工智能·架构
XUHUOJUN1 天前
Azure Stack Hub 管理员日常操作:从 StampInformation 到 PEP、区域管理与容量监管
microsoft·azure stack
语核科技1 天前
售前技术支持的Agentic RAG架构:知识库检索与报价生成的工程实现
架构