你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程 - 创建 Azure Kubernetes 服务 (AKS) 群集

Kubernetes 为容器化应用程序提供一个分布式平台。 使用 Azure Kubernetes 服务 (AKS),可以快速创建生产就绪的 Kubernetes 群集。

在本教程(教程系列的第 3 部分,共 7 部分)中,你将在 AKS 中部署一个 Kubernetes 群集。 学习如何:

  • 部署一个可向 Azure 容器注册表 (ACR) 进行身份验证的 AKS 群集。
  • 安装 Kubernetes CLI kubectl
  • 配置 kubectl 以连接到 AKS 群集。

开始之前

在前面的教程中,你已创建一个容器映像并将其上传到 ACR 实例。 从教程 1 - 为 AKS 准备应用程序开始学习。

  • 如果你使用的是 Azure CLI,本教程要求运行 Azure CLI 2.0.53 或更高版本。 使用 az --version 检查版本。 若要安装或升级,请参阅安装 Azure CLI
  • 如果使用的是 Azure PowerShell,本教程要求运行 Azure PowerShell 5.9.0 或更高版本。 使用 Get-InstalledModule -Name Az 检查版本。 若要进行安装或升级,请参阅安装 Azure PowerShell
  • 如果你使用的是 Azure Developer CLI,本教程要求运行 Azure Developer CLI 版本 1.5.1 或更高版本。 使用 azd version 检查版本。 若要安装或升级,请参阅安装 Azure Developer CLI

创建 Kubernetes 群集

AKS 群集可以使用 Kubernetes 基于角色的访问控制 (Kubernetes RBAC),它允许你根据分配给用户的角色定义对资源的访问权限。 如果为用户分配了多个角色,则权限会合并。 可将权限范围限定为单个命名空间或整个群集。

若要详细了解 AKS 和 Kubernetes RBAC,请参阅在 AKS 中使用 Kubernetes RBAC 和 Microsoft Entra 标识控制对群集资源的访问

本教程需要 Azure CLI 2.0.53 或更高版本。 使用 az --version 检查版本。 若要安装或升级,请参阅安装 Azure CLI

安装 Kubernetes CLI

可以使用 Kubernetes CLI kubectl 连接到 Kubernetes 群集。 如果使用的是 Azure Cloud Shell,则 kubectl 已安装。 如果在本地运行命令,则可以使用 Azure CLI 或 Azure PowerShell 安装 kubectl

创建 AKS 群集

AKS 群集可以使用 Kubernetes 基于角色的访问控制 (Kubernetes RBAC),它允许你根据分配给用户的角色定义对资源的访问权限。 为用户分配多个角色时,将合并权限。 可将权限范围限定为单个命名空间或整个群集。 有关详细信息,请参阅在 AKS 中使用 Kubernetes RBAC 和 Microsoft Entra ID 控制对群集资源的访问

有关 AKS 资源限制和区域可用性的信息,请参阅 AKS 中的配额、虚拟机大小限制和区域可用性

注意

若要确保群集可靠运行,应至少运行两个节点。

若要允许 AKS 群集与其他 Azure 资源交互,Azure 平台会自动创建群集标识。 在此示例中,为群集标识授予了从你在上一教程中创建的 ACR 实例拉取映像的权限。 若要成功执行该命令,需要在 Azure 订阅中拥有“所有者”或“Azure 帐户管理员”角色。

  • 使用 az aks create 命令创建 AKS 群集。 以下示例在名为 myResourceGroup 的资源组中创建名为 myAKSCluster 的群集。 此资源组是上一教程中在 eastus 区域中创建的。

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 2 \
        --generate-ssh-keys \
        --attach-acr <acrName>
    

    注意

    如果已生成 SSH 密钥,可能会遇到类似于 linuxProfile.ssh.publicKeys.keyData is invalid 的错误。 若要继续,请在不使用 --generate-ssh-keys 参数的情况下重试该命令。

为避免需要“所有者”或“Azure 帐户管理员”角色,还可以手动配置服务主体,以从 ACR 中提取映像 。 有关详细信息,请参阅使用服务主体进行 ACR 身份验证使用请求密码从 Kubernetes 进行身份验证。 或者,可以使用托管标识而不是服务主体,以便更轻松地进行管理。

使用 kubectl 连接到群集

  1. 使用 az aks get-credentials 命令将 kubectl 配置为连接到你的 Kubernetes 群集。 以下示例获取 myResourceGroup 中名为 myAKSCluster 的 AKS 群集的凭据。

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. 使用 kubectl get nodes 命令验证与群集的连接,该命令将返回群集节点的列表。

    kubectl get nodes
    

    以下示例输出显示群集节点的列表。

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-nodepool1-19366578-vmss000002   Ready    agent   47h   v1.25.6
    aks-nodepool1-19366578-vmss000003   Ready    agent   47h   v1.25.6
    

后续步骤

在本教程中,你已在 AKS 中部署了一个 Kubernetes 群集并配置了 kubectl 以连接到该群集。 你已了解如何执行以下操作:

  • 部署一个可向 ACR 进行身份验证的 AKS 群集。
  • 安装 Kubernetes CLI kubectl
  • 配置 kubectl 以连接到 AKS 群集。

在下一个教程中,你将了解如何将应用程序部署到群集。