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 受限的单节点 Windows Server 上运行 AKS:
群集类型 | 控制平面 VM 大小 | 工作器节点 | 对于更新操作 | 负载均衡器 |
---|---|---|---|---|
AKS 主机 | Standard_A4_v2 VM 大小 = 8GB | 不适用 - AKS 主机没有工作器节点。 | 8GB | 不适用 - AKS 主机使用 kubevip 进行负载均衡。 |
工作负载群集 | Standard_A4_v2 VM 大小 = 8GB | 1 个工作器节点的 Standard_K8S3_v1 = 6GB | 可以重复使用此保留的 8GB 用于工作负载群集升级。 | 如果 kubevip 用于负载均衡 (而不是默认的 HAProxy 负载均衡器) ,则不适用。 |
总最低要求: 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 上,则必须在它们之间的防火墙处打开这些端口:
Port | 源 | 说明 | 防火墙说明 |
---|---|---|---|
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 Stack HCI 上的 AKS 产品目录、产品位和 OS 映像时使用。 在运行时 Set-AksHciConfig 和从 SFS 下载时发生。 |
msk8s.b.tlu.dl.delivery.mp.microsoft.com msk8s.f.tlu.dl.delivery.mp.microsoft.com |
80 | 在从 SFS 下载 Azure Stack HCI 上的 AKS 产品目录、产品位和 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 在 AKS-HCI 管理群集上部署 Azure Arc 代理。 Helm 客户端下载需要此终结点,以便于部署代理 helm 图表。 |
*.arc.azure.net | 443 | 管理 Azure 门户 中的 AKS 混合群集所必需的。 |
dl.k8s.io | 443 | 下载和更新 Azure Arc 的 Kubernetes 二进制文件所必需的。 |
akshci.azurefd.net | 443 | 运行 Install-AksHci 时 Azure Stack HCI 上的 AKS 计费所需。 |
v20.events.data.microsoft.com gcs.prod.monitoring.core.windows.net |
443 | 定期用于从 Azure Stack HCI 或 Windows 服务器主机发送 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。 由于 Arc for Server 代理现在默认安装在 Azure Stack HCI 21H2 及更高版本的 Azure Stack HCI 节点上,因此还应查看 Arc for server agents URL。
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 主机: