Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Kubernetes 服务 (AKS) 是可用于快速部署和管理群集的托管式 Kubernetes 服务。 在本文中,你将使用 Azure CLI 部署运行 Windows Server 容器的 AKS 群集。 还可将 Windows Server 容器中的 ASP.NET 示例应用程序部署到群集。
Nota
为了开始快速预配 AKS 群集,本文介绍了仅针对评估目的部署具有默认设置的群集的步骤。 在部署生产就绪群集之前,建议熟悉我们的[基线参考体系结构][baseline-reference-architecture],考虑它如何与你的业务需求保持一致。
本快速入门假设读者基本了解 Kubernetes 的概念。 有关详细信息,请参阅 Azure Kubernetes 服务 (AKS) 的 Kubernetes 核心概念。
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
-
先决条件
可以使用本地 Azure CLI。
如果需要,请安装 Azure CLI 来运行 CLI 参考命令。
本地 Azure CLI,请了解如何安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
通过使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
本文需要 Azure CLI 版本 2.0.64 或更高版本。
确保用于创建群集的标识具有合适的的最低权限。 有关 AKS 访问和标识的详细信息,请参阅 Azure Kubernetes Service (AKS) 的访问和标识选项。
如果有多个 Azure 订阅,请使用 az account set 命令选择应在其中计收资源费用的相应订阅 ID。 有关详细信息,请参阅如何管理 Azure 订阅 � Azure CLI。
Azure 资源组是用于部署和管理 Azure 资源的逻辑组。 创建资源组时,系统会要求你指定一个位置。 此位置是资源组元数据的存储位置,如果你在创建资源期间未指定另一个区域,则它是资源在 Azure 中的运行位置。
- 使用 az group create 命令创建资源组。 以下示例在“eastus”位置创建名为“myResourceGroup”的资源组。 在 BASH shell 中输入此命令和其他命令:
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="canadacentral"
export MY_RESOURCE_GROUP_NAME="myAKSResourceGroup$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION
结果:
{
"id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupxxxxx",
"location": "ChinaNorth3",
"managedBy": null,
"name": "myResourceGroupxxxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
在本部分中,我们将使用以下配置创建 AKS 群集:
- 群集配置有两个节点,以确保其可靠运行。 节点是运行 Kubernetes 节点组件和容器运行时的 Azure 虚拟机 (VM)。
-
--windows-admin-password
和--windows-admin-username
参数为群集上的任何 Windows Server 节点设置管理员凭据,并且必须满足 Windows Server 密码要求。 - 节点池使用
VirtualMachineScaleSets
。
若要使用 Azure CLI 创建 AKS 群集,请执行以下步骤:
- 创建用户名,用作群集上 Windows Server 节点的管理员凭据。 (系统提示输入的原始示例;在此 Exec Doc 中,环境变量是非交互式设置的。
export WINDOWS_USERNAME="winadmin"
- 为你在上一步中创建的管理员用户名创建密码。 密码必须至少为 14 个字符,并且满足 Windows Server 密码复杂性要求。
export WINDOWS_PASSWORD=$(echo "P@ssw0rd$(openssl rand -base64 10 | tr -dc 'A-Za-z0-9!@#$%^&*()' | cut -c1-6)")
- 使用 az aks create 命令创建群集,并指定
--windows-admin-username
和--windows-admin-password
参数。 以下示例命令使用前面命令中设置 WINDOWS_USERNAME 和 WINDOWS_PASSWORD 的值创建群集。 随机后缀将追加到群集名称以保持唯一性。
export MY_AKS_CLUSTER="myAKSCluster$RANDOM_SUFFIX"
az aks create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_AKS_CLUSTER \
--node-count 2 \
--enable-addons monitoring \
--generate-ssh-keys \
--windows-admin-username $WINDOWS_USERNAME \
--windows-admin-password $WINDOWS_PASSWORD \
--vm-set-type VirtualMachineScaleSets \
--network-plugin azure
片刻之后,该命令将会完成,并返回有关群集的 JSON 格式信息。 有时,群集预配的时间可能超过几分钟。 最多允许 10 分钟进行预配。
如果收到密码验证错误,并且设置的密码满足长度和复杂性要求,请尝试在另一个区域中创建资源组。 然后尝试创建包含新资源组的群集。
如果在创建节点池时未指定管理员用户名和密码,则用户名将设置为“azureuser”,密码将设置为随机值。 有关详细信息,请参阅 Windows Server 常见问题解答。
无法更改管理员用户名,但可以使用 az aks update
更改 AKS 群集用于 Windows Server 节点的管理员密码。 有关详细信息,请参阅 Windows Server 常见问题解答。
若要运行支持 Windows Server 容器的节点池的 AKS 群集,群集需要采用使用 Azure CNI(高级)网络插件的网络策略。
--network-plugin azure
参数指定 Azure CNI。
默认情况下,将使用可运行 Linux 容器的节点池创建 AKS 群集。 必须添加另一个节点池,该节点池可与 Linux 节点池一起运行 Windows Server 容器。
Windows Server 2022 是 Kubernetes 版本 1.25.0 及更高版本的默认操作系统。 Windows Server 2019 是早期版本的默认操作系统。 如果未指定特定的 OS SKU,Azure 将使用群集使用的 Kubernetes 版本的默认 SKU 创建新的节点池。
若要使用默认 OS SKU,请在不指定 OS SKU 的情况下创建节点池。 节点池是根据群集的 Kubernetes 版本为默认操作系统配置的。
使用 az aks nodepool add
命令添加一个 Windows 节点池。 以下命令将创建名为“npwin”的新节点池,并将其添加到 myAKSCluster。 该命令还使用运行 az aks create
时创建的默认虚拟网络中的默认子网。 未指定 OS SKU,因此节点池将基于群集的 Kubernetes 版本设置为默认操作系统:
az aks nodepool add \
--resource-group $MY_RESOURCE_GROUP_NAME \
--cluster-name $MY_AKS_CLUSTER \
--os-type Windows \
--name npwin \
--node-count 1