教程:部署 Azure Kubernetes 服务 (AKS) 群集

Kubernetes 为容器化应用程序提供一个分布式平台。 使用 AKS 可以快速创建生产就绪的 Kubernetes 群集。 在本教程的第 3 部分(共 7 部分)中,在 AKS 中部署了 Kubernetes 群集。 学习如何:

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

在后面的教程中,Azure 投票应用程序将部署到群集,并进行缩放和更新。

开始之前

在以前的教程中,已创建容器映像并上传到 Azure 容器注册表实例。 如果尚未完成这些步骤,并且想要逐一完成,请先参阅教程 1 - 创建容器映像

此教程需要运行 Azure CLI 2.0.53 或更高版本。 运行 az --version 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI

创建 Kubernetes 群集

AKS 群集可以使用 Kubernetes 基于角色的访问控制 (Kubernetes RBAC)。 可以使用这些控制根据分配给用户的角色定义资源访问权限。 权限可以组合(如果为用户分配了多个角色),可以局限于单个命名空间,也可以涵盖整个群集。 默认情况下,Azure CLI 会在你创建 AKS 群集时自动启用 Kubernetes RBAC。

使用 az aks create 创建 AKS 群集。 以下示例在名为 myResourceGroup 的资源组中创建名为 myAKSCluster 的群集。 此资源组是上一教程中在 chinaeast2 区域中创建的。 下面的示例未指定区域,因此 AKS 群集也会在 chinaeast2 区域中创建。 有关更多信息,请参阅 Azure Kubernetes 服务 (AKS) 中的配额、虚拟机大小限制和区域可用性,以了解有关 AKS 的资源限制和区域可用性的详细信息。

为了允许 AKS 群集与其他 Azure 资源进行交互,将自动创建一个群集标识,因为未指定该标识。 此处,此群集标识被授予从上一教程中创建的 Azure 容器注册表 (ACR) 实例中拉取映像的权限。 若要成功执行该命令,需要在 Azure 订阅上拥有“所有者”或“Azure 帐户管理员”角色 。

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

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

几分钟后,部署完成并返回有关 AKS 部署的 JSON 格式信息。

备注

若要确保群集能够可靠运行,应至少运行 2(两个)节点。

安装 Kubernetes CLI

若要从本地计算机连接到 Kubernetes 群集,请使用 kubectl(Kubernetes 命令行客户端)。

可以使用 az aks install-cli 命令在本地进行安装:

az aks install-cli --install-location <kubectl-download-path>

备注

原始的 az aks install-cli 命令在 Azure 中国区无效,详见此文

  • 可以通过 PR 添加适用于 Azure 中国区的“az aks install-cli”支持来修复此问题。以下命令会在 Linux 上启动容器化的 azure-cli(dockerhub.azk8s.cn/andyzhangx/azure-cli:v2.0.60-china) 将最新的 kubectl 版本下载到 /usr/local/bin/

    # docker run -v ${HOME}:/root -v /usr/local/bin/:/kube -it dockerhub.azk8s.cn/andyzhangx/azure-cli:v2.0.60-china
    root@09feb993f352:/# az cloud set --name AzureChinaCloud
    root@09feb993f352:/# az aks install-cli --install-location /kube/kubectl
    

使用 kubectl 连接到群集

若要将 kubectl 配置为连接到 Kubernetes 群集,请使用 az aks get-credentials 命令。 以下示例获取 myResourceGroup 中名为“myAKSCluster” 的 AKS 群集的凭据:

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

若要验证与群集的连接,请运行 kubectl get nodes 命令以返回群集节点列表:

$ kubectl get nodes

NAME                                STATUS   ROLES   AGE     VERSION
aks-nodepool1-37463671-vmss000000   Ready    agent   2m37s   v1.18.10
aks-nodepool1-37463671-vmss000001   Ready    agent   2m28s   v1.18.10

后续步骤

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

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

请继续学习下一教程,了解如何将应用程序部署到群集。