Azure Stack HCI 22H2 上的 Azure Arc 启用的 AKS 的系统要求
适用于:Azure Stack HCI、版本 22H2、Windows Server 2022、Windows Server 2019
本文介绍设置 Azure Arc 启用的Azure Kubernetes 服务(AKS)的要求。有关 Arc 启用的 AKS 的概述,请参阅 AKS 概述。
硬件要求
Microsoft 建议从其合作伙伴那里购买经过验证的 Azure Stack HCI 硬件/软件解决方案。 这些解决方案经过设计、组装和验证,用于运行我们的参考体系结构和检查兼容性及可靠性,以便你可以快速启用和运行。 你应检查所用的系统、组件、设备和驱动程序是否是通过 Windows Server 目录认证的 Windows Server。 有关已验证的解决方案, 请参阅 Azure Stack HCI 解决方案 网站。
重要
生产部署的主机系统必须是物理硬件。 不支持嵌套虚拟化,其特征为在虚拟机中部署 Azure Stack HCI 或 Windows Server 并安装 AKS。
支持的最大硬件规格
超出以下规格的 Azure Stack HCI 和 Windows Server 上的 AKS 部署不受支持:
资源 | 最大值 |
---|---|
每个群集的物理服务器数 | 8 (Azure Stack HCI 版本 22H2 和 Windows Server) |
VM 总数 | 200 |
计算要求
内存最低要求
可以按以下方式设置 AKS 群集,以在具有有限 RAM 的单个节点上运行 AKS:
群集类型 | 控制平面 VM 大小 | 工作器节点 | 对于更新操作 | 负载均衡器 |
---|---|---|---|---|
AKS 主机 | Standard_A4_v2 VM 大小 = 8GB | N/A - AKS 主机没有工作器节点。 | 8GB | N/A - AKS 主机使用 kubevip 进行负载均衡。 |
工作负荷群集 | Standard_A4_v2 VM 大小 = 8GB | 1 个工作器节点的 Standard_K8S3_v1 = 6GB | 可以将此保留的 8GB 用于工作负荷群集升级。 | 如果 kubevip 用于负载均衡(而不是默认的 HAProxy 负载均衡器),则为 N/A。 |
总最低要求: 30 GB RAM。
此最低要求适用于具有一个工作器节点的 AKS 部署,用于运行容器化应用程序。 如果选择添加工作器节点或 HAProxy 负载均衡器,则最终 RAM 要求会相应地更改。
建议的计算要求
环境 | 每个服务器的 CPU 核心数 | RAM |
---|---|---|
Azure Stack HCI | 32 | 256 GB |
Windows Server 故障转移群集 | 32 | 256 GB |
单节点 Windows Server | 16 | 128 GB |
对于生产环境,最终大小取决于计划部署在 Azure Stack HCI 或 Windows Server 群集上的应用程序和工作器节点数。 如果选择在单节点 Windows Server 上运行 AKS,则不会获得在 Azure Stack HCI 或 Windows Server 群集或 Windows Server 故障转移群集上运行 AKS 等功能。
Azure Stack HCI 和 Windows Server 上的 AKS 的其他计算要求符合 Azure Stack HCI 要求。 有关 Azure Stack HCI 服务器要求的详细信息,请参阅 Azure Stack HCI 系统 要求。
必须在群集中的每个服务器上安装相同的操作系统。 如果使用的是 Azure Stack HCI,群集中的每个服务器上必须具有相同的 OS 和版本。 如果使用 Windows Server Datacenter,则群集中每个服务器上的 OS 和版本必须相同。 每个 OS 都必须使用 en-us 区域和语言选择。 安装后,便不能更改这些设置。
存储要求
Azure Stack HCI 和 Windows Server 上的 AKS 支持以下存储实现:
名称 | 存储类型 | 所需容量 |
---|---|---|
Azure Stack HCI 群集 | 群集共享卷 | 1 TB |
Windows Server Datacenter 故障转移群集 | 群集共享卷 | 1 TB |
单节点 Windows Server Datacenter | 直连存储 | 500 GB |
对于 Azure Stack HCI 或 Windows Server 群集,有两种受支持的存储配置用于运行虚拟机工作负荷:
- 混合存储使用闪存和硬盘驱动器 (HDD) 平衡性能和容量。
- 全闪存存储使用固态硬盘 (SSD) 或 NVMe 最大限度地提高性能。
Azure Stack HCI 不支持仅具有基于 HDD 的存储的系统,因此建议不要使用这些系统来运行 Azure Stack HCI 和 Windows Server 上的 AKS。 有关建议的驱动器配置的详细信息,请参阅 Azure Stack HCI 文档。 在 Azure Stack HCI 目录中验证的所有系统都属于这两种受支持的存储配置之一。
Kubernetes 使用 etcd 来存储群集的状态。 Etcd 存储正在运行的 Pod 的配置、规范和状态。 此外,Kubernetes 使用存储进行服务发现。 作为 Kubernetes 操作及其支持的工作负载的协调组件,etcd 的延迟和吞吐量至关重要。 必须在 SSD 上运行 AKS。 有关详细信息,请参阅 etcd.io 的性能 。
对于基于 Windows Server Datacenter 的群集,你可使用本地存储或基于 SAN 的存储进行部署。 对于本地存储,建议使用内置存储空间直通或等效的认证虚拟 SAN 解决方案来创建一个超融合基础结构,该基础结构提供群集共享卷供工作负荷使用。 对于存储空间直通,你的存储必须是混合存储(闪存 + HDD,用于实现性能和容量均衡)或者全闪存储(SSD、NVMe,用于尽可能提高性能)。 如果选择使用基于 SAN 的存储进行部署,请确保你的 SAN 存储可提供足够的性能来运行多个虚拟机工作负载。 基于 HDD 的旧式 SAN 存储可能无法提供运行多个虚拟机工作负荷所需的性能级别,你可能会看到性能问题和超时。
对于使用本地存储的单节点 Windows Server 部署,强烈推荐使用全闪存储(SSD、NVMe)来提供在单个物理主机上托管多个虚拟机所需的性能。 如果没有闪存存储,HDD 上的较低性能级别可能会导致部署问题和超时。
网络要求
以下要求适用于 Azure Stack HCI 22H2 群集和 Windows Server Datacenter 群集。 有关 Azure Stack HCI 23H2 上的网络要求,请参阅 网络要求。
- 对于 Azure Stack HCI 22H2 和 Windows Server,请验证是否在使用 Windows Admin Center 时配置了现有的外部虚拟交换机。 对于 HCI 或 Windows Server 群集,此交换机及其名称在所有群集节点中必须相同。 有关 HCI 23H2,请参阅 网络系统要求。
- 验证是否已在所有网络适配器上禁用 IPv6。
- 对于成功的部署,Azure Stack HCI 或 Windows Server 群集节点和 Kubernetes 群集 VM 必须具有外部 Internet 连接。
- 请确保为群集定义的所有子网彼此之间和 Internet 之间可路由。
- 确保 Azure Stack HCI 主机和租户 VM 之间存在网络连接。
- 所有节点都需要 DNS 名称解析才能相互通信。
- (推荐)在 DNS 环境中启用动态 DNS 更新,以允许 AKS 在 DNS 系统中注册云代理通用群集名称进行发现。
IP 地址分配
在 Arc 启用的 AKS 中,虚拟网络用于将 IP 地址分配给需要它们的 Kubernetes 资源,如前所述。 有两种网络模型可供选择,具体取决于所需的 AKS 网络体系结构。
注意
此处为 AKS 部署定义的虚拟网络体系结构不同于数据中心内的基础物理网络体系结构。
- 静态 IP 网络:虚拟网络将静态 IP 地址分配给 Kubernetes 群集 API 服务器、Kubernetes 节点、基础 VM、负载均衡器和在群集上运行的任何 Kubernetes 服务。
- DHCP 网络:虚拟网络使用 DHCP 服务器将动态 IP 地址分配给 Kubernetes 节点、基础 VM 和负载均衡器。 Kubernetes 群集 API 服务器和在群集上运行的任何 Kubernetes 服务仍分配静态 IP 地址。
最小 IP 地址预留
至少应为部署保留以下 IP 地址数:
群集类型 | 控制平面节点 | 工作器节点 | 对于更新操作 | 负载均衡器 |
---|---|---|---|---|
AKS 主机 | 1 个 IP | NA | 2 个 IP | NA |
工作负荷群集 | 每个节点 1 个 IP | 每个节点 1 个 IP | 5 个 IP | 1 个 IP |
此外,还应为 VIP 池保留以下 IP 地址数:
资源类型 | IP 地址数 |
---|---|
群集 API 服务器 | 每个群集 1 个 |
Kubernetes 服务 | 每个服务 1 个 |
可以看到,所需的 IP 地址数根据 AKS 体系结构和 Kubernetes 群集上运行的服务数而可变。 建议为部署保留总共 256 个 IP 地址(/24 子网)。
有关网络要求的详细信息,请参阅 AKS 中的节点网络概念和 AKS 中的容器网络概念。
网络端口和 URL 要求
通过 Arc 要求启用的 AKS
在 Azure Stack HCI 上创建 Kubernetes 群集时,会在群集中的每个服务器上自动打开以下防火墙端口。
如果 Azure Stack HCI 物理群集节点和 Azure Kubernetes 群集 VM 位于两个隔离 vlan 上,则必须在它们之间的防火墙处打开这些端口:
端口 | Source | 说明 | 防火墙说明 |
---|---|---|---|
22 | AKS VM | 使用 Get-AksHciLogs 时需要收集日志。 |
如果使用单独的 VLAN,物理 Hyper-V 主机必须访问此端口上的 AKS VM。 |
6443 | AKS VM | 与 Kubernetes API 通信所必需的。 | 如果使用单独的 VLAN,物理 Hyper-V 主机必须访问此端口上的 AKS VM。 |
45000 | 物理 Hyper-V 主机 | wssdAgent gRPC 服务器。 | 不需要跨 VLAN 规则。 |
45001 | 物理 Hyper-V 主机 | wssdAgent gRPC 身份验证。 | 不需要跨 VLAN 规则。 |
46000 | AKS VM | wssdCloudAgent 到 lbagent。 | 如果使用单独的 VLAN,物理 Hyper-V 主机必须访问此端口上的 AKS VM。 |
55000 | 群集资源 (-CloudServiceCIDR) | 云代理 gRPC 服务器。 | 如果使用单独的 VLAN,AKS VM 必须访问此端口上的群集资源的 IP。 |
65000 | 群集资源 (-CloudServiceCIDR) | 云代理 gRPC 身份验证。 | 如果使用单独的 VLAN,AKS VM 必须访问此端口上的群集资源的 IP。 |
如果网络需要使用代理服务器连接到 Internet,请参阅 AKS 上的“使用代理服务器设置”。
必须将以下 URL 添加到允许列表:
URL | 端口 | 备注 |
---|---|---|
msk8s.api.cdp.microsoft.com | 443 | 从 SFS 下载 Azure 本地产品目录、产品位和 OS 映像时使用。 在运行时 Set-AksHciConfig 以及从 SFS 下载时发生。 |
msk8s.b.tlu.dl.delivery.mp.microsoft.com msk8s.f.tlu.dl.delivery.mp.microsoft.com |
80 | 从 SFS 下载 Azure 本地产品目录、产品位和 OS 映像时使用。 在运行时 Set-AksHciConfig 以及从 SFS 下载时发生。 |
login.microsoftonline.com login.windows.net management.azure.com msft.sts.microsoft.com graph.windows.net |
443 | 用于在运行 Set-AksHciRegistration 时登录 Azure。 |
ecpacr.azurecr.io mcr.microsoft.com *.mcr.microsoft.com *.data.mcr.microsoft.com *.blob.core.windows.net 美国终结点:wus2replica*.blob.core.windows.net |
443 | 在运行 Install-AksHci 时拉取容器映像所需。 |
<region.dp.kubernetesconfiguration.azure.com> | 443 | 需要将 AKS 混合群集加入 Azure Arc。 |
gbl.his.arc.azure.com | 443 | 需要用于获取区域终结点,以便拉取系统分配的托管标识证书。 |
*.his.arc.azure.com | 443 | 拉取系统分配的托管标识证书时必需。 |
k8connecthelm.azureedge.net | 443 | 已启用 Arc 的 Kubernetes 使用 Helm 3 在 Azure 本地管理群集上的 AKS 上部署 Azure Arc 代理。 Helm 客户端下载需要此终结点,以便于部署代理 helm 图表。 |
*.arc.azure.net | 443 | 在 Azure 门户 中管理 AKS 混合群集所必需的。 |
dl.k8s.io | 443 | 下载和更新 Azure Arc 的 Kubernetes 二进制文件所必需的。 |
akshci.azurefd.net | 443 | 运行 Install-AksHci 时,Azure 本地计费上的 AKS 是必需的。 |
v20.events.data.microsoft.com gcs.prod.monitoring.core.windows.net |
443 | 用于定期从 Azure 本地或 Windows Server 主机发送Microsoft所需的诊断数据。 |
注意
Arc 启用的 AKS 存储和处理客户数据。 默认情况下,客户数据保留在客户部署服务实例的区域内。 此数据存储在区域Microsoft运营的数据中心内。 对于具有数据驻留要求的区域,客户数据始终保存在同一区域中。
Azure Arc 功能的其他 URL 要求
前面的 URL 列表涵盖将 AKS 服务连接到 Azure 进行计费所需的最低 URL。 如果要在 AKS 工作负荷群集上使用群集连接、自定义位置、Azure RBAC 和其他 Azure 服务(例如 Azure Monitor 等),则必须允许其他 URL。 有关 Arc URL 的完整列表,请参阅 已启用 Azure Arc 的 Kubernetes 网络要求。
还应查看 Azure Stack HCI URL。 由于 Azure Stack HCI 21H2 及更高版本的 Azure Stack HCI 节点上默认安装了 Arc for Server 代理,因此还应查看 适用于服务器代理 URL 的 Arc。
AKS 中的拉伸群集
如延伸群集概述中所述,不支持使用 Windows 拉伸群集在 Azure Stack HCI 和 Windows Server 上部署 AKS。 建议使用备份和灾难恢复方法实现数据中心运营连续性。 有关详细信息,请参阅在 Azure Stack HCI 和 Windows Server 上使用 Velero 和 Azure Blob 存储执行工作负荷群集备份或还原,以及 使用 GitOps 和 Flux v2 在 AksHci 上部署配置,实现应用程序连续性。
Windows Admin Center 要求
Windows Admin Center 是用于创建和管理由 Azure Arc 启用的 AKS 的用户界面。若要将 Windows Admin Center 与 Azure Stack HCI 和 Windows Server 上的 AKS 配合使用,必须满足以下列表中的所有条件。
以下是运行 Windows Admin Center 网关的计算机的要求:
- Windows 10 或 Windows Server。
- 已注册到 Azure。
- 与 Azure Stack HCI 或 Windows Server Datacenter 群集位于同一域中。
- 拥有所有者权限的 Azure 订阅。 可以通过导航到订阅并选择Azure 门户左侧的访问控制(IAM),然后选择“查看我的访问权限”来检查访问级别。
Azure 要求
必须连接到 Azure 帐户。
Azure 帐户和订阅
如果还没有 Azure 帐户, 请创建一个。 可以使用任何类型的现有订阅:
- 面向学生或 Visual Studio 订阅者的提供 Azure 额度的免费帐户。
- 使用信用卡的即用即付订阅。
- 通过企业协议 (EA) 获取的订阅。
- 通过云解决方案提供商 (CSP) 计划获取的订阅。
Microsoft Entra 权限、角色和访问级别
你必须具有足够的权限,才能向你的 Microsoft Entra 租户注册应用程序。
要检查你是否具有足够的权限,请按照下列信息操作:
- 转到Azure 门户,选择Microsoft Entra ID 下的角色和管理员以检查角色。
- 如果你的角色是“用户”,则必须确保非管理员可注册应用程序。
- 若要检查是否可以注册应用程序,请转到 Microsoft Entra 服务下的用户设置 ,检查你是否有权注册应用程序。
如果应用注册设置设置为 “否”,则只有具有管理员角色的用户才能注册这些类型的应用程序。 若要了解提供给每个角色的 Microsoft Entra ID 中的可用管理员角色和特定权限,请参阅 Microsoft Entra 内置角色。 如果你的帐户具有“用户”角色,但应用注册设置仅限于管理员用户,请要求管理员为你分配可创建应用注册并管理其各个方面的某个管理员角色,或者让用户能够注册应用。
如果没有足够的权限注册应用程序,并且管理员无法授予这些权限,则部署 AKS 的最简单方法是要求 Azure 管理员创建具有适当权限的服务主体。 管理员可查看以下部分,了解如何创建服务主体。
Azure 订阅角色和访问级别
若要检查你的访问级别,请导航到你的订阅,选择 Azure 门户左侧的“访问控制(IAM)”,然后选择“查看我的访问权限”。
- 如果使用 Windows Admin Center 部署 AKS 主机或 AKS 工作负荷群集,则必须拥有你为其 所有者的 Azure 订阅。
- 如果使用 PowerShell 部署 AKS 主机或 AKS 工作负荷群集,则注册群集的用户必须至少具有以下一项:
如果 Azure 订阅通过 EA 或 CSP,部署 AKS 的最简单方法是要求 Azure 管理员创建具有适当权限的服务主体。 管理员可以查看以下部分,了解如何创建服务主体。
可选:创建新的服务主体
运行以下步骤,创建具有内置 所有者 角色的新服务主体。 只有订阅所有者才能创建具有正确角色分配的服务主体。 可以通过导航到订阅、选择Azure 门户左侧的访问控制(IAM),然后选择“查看我的访问权限”来检查访问级别。
在 PowerShell 管理窗口中设置以下 PowerShell 变量。 验证订阅和租户是否是用于注册 AKS 主机进行计费的内容:
$subscriptionID = "<Your Azure subscrption ID>"
$tenantID = "<Your Azure tenant ID>"
安装和导入 AKS PowerShell 模块:
Install-Module -Name AksHci
使用 Connect-AzAccount PowerShell 命令登录到 Azure:
Connect-AzAccount -tenant $tenantID
通过运行 Set-AzContext 命令,将想要用于注册 AKS 主机进行计费的订阅设置为默认订阅:
Set-AzContext -Subscription $subscriptionID
通过运行 Get-AzContext PowerShell 命令来验证登录上下文是否正确。 验证订阅、租户和帐户是否是要用于注册 AKS 主机进行计费:
Get-AzContext
Name Account SubscriptionName Environment TenantId
---- ------- ---------------- ----------- --------
myAzureSubscription (92391anf-... user@contoso.com myAzureSubscription AzureCloud xxxxxx-xxxx-xxxx-xxxxxx
通过运行 New-AzADServicePrincipal PowerShell 命令创建服务主体。 此命令创建具有 “所有者” 角色的服务主体,并在订阅级别设置范围。 有关创建服务主体的详细信息,请参阅 使用 Azure PowerShell 创建 Azure 服务主体。
$sp = New-AzADServicePrincipal -role "Owner" -scope /subscriptions/$subscriptionID
运行以下命令检索服务主体的密码。 请注意,此命令仅适用于 Az.Accounts 2.6.0 或更低版本。 安装 AksHci PowerShell 模块时,我们会自动下载 Az.Accounts 2.6.0 模块:
$secret = $sp.PasswordCredentials[0].SecretText
Write-Host "Application ID: $($sp.ApplicationId)"
Write-Host "App Secret: $secret"
在上一个输出中,部署 AKS 时,现在可以使用 应用程序 ID 和 机密 。 应记下这些项目并安全地存储它们。 创建后,在Azure 门户的“订阅”下,访问控制,然后“角色分配”下,应会看到新的服务主体。
Azure 资源组
必须在以下 Azure 区域之一拥有一个资源组,且该资源组在注册前可用:澳大利亚东部、美国东部、东南亚或西欧。
Azure 区域
警告
AKS Arc 目前仅支持在以下指定的 Azure 区域中创建群集。 如果尝试在此列表外部的区域进行部署,则会发生部署失败。
AKS Arc 服务用于注册、计费和管理。 目前在以下区域中受支持:
- 美国东部
- 美国中南部
- 西欧
Active Directory 要求
对于具有 2 个或多个物理节点的 AKS 故障转移群集,在 Active Directory 环境中以最佳方式运行,请确保满足以下要求:
注意
单节点 Azure Stack HCI 或 Windows Server 部署不需要 Active Directory。
- 设置时间同步,以便所有群集节点和域控制器上的差异不超过 2 分钟。 有关设置时间同步的信息,请参阅 Windows 时间服务。
- 确保用于添加更新和管理 AKS 或 Windows Server Datacenter 群集的用户帐户在 Active Directory 中具有正确的权限。 如果使用组织单位(OU)来管理服务器和服务的组策略,则用户帐户需要对 OU 中的所有对象拥有列表、读取、修改和删除权限。
- 为 AKS 或 Windows Server Datacenter 群集的服务器和服务使用单独的组织单位(OU)。 使用单独的 OU 可以更精细地控制访问和权限。
- 如果在 Active Directory 中的容器上使用 GPO 模板,请确保部署 Azure Stack HCI 和 Windows Server 上的 AKS 不受该策略的限制。
后续步骤
满足上述所有先决条件之后,可以使用以下资源设置 Azure Stack HCI 上的 AKS 主机: