简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

使用 Azure NetApp Files 设置 Microsoft Azure

在使用 Astra Control Service 管理 Azure Kubernetes Service 集群之前,需要执行一些步骤来准备 Microsoft Azure 订阅。如果您计划使用 Azure NetApp Files 作为存储后端,请按照以下说明进行操作。

快速开始设置 Azure

按照以下步骤快速入门,或者向下滚动到其余部分以了解完整详细信息。

查看 Azure Kubernetes Service 的 Astra Control Service 要求

确保集群运行状况良好且运行的是 Kubernetes 1.21.x 到 1.23 版,节点池已联机且运行的是 * Linux * 等。 了解有关此步骤的更多信息

注册 Microsoft Azure

创建 Microsoft Azure 帐户。 了解有关此步骤的更多信息

对于 Azure NetApp Files ,

注册 NetApp 资源提供商。 了解有关此步骤的更多信息

Create a NetApp account

转到 Azure 门户中的 Azure NetApp Files 并创建 NetApp 帐户。 了解有关此步骤的更多信息

设置容量池

为永久性卷设置一个或多个容量池。 了解有关此步骤的更多信息

Delegate a subnet to Azure NetApp Files

将子网委派给 Azure NetApp Files ,以便 Astra 控制服务可以在该子网中创建永久性卷。 了解有关此步骤的更多信息

创建 Azure 服务主体

创建具有 " 贡献者 " 角色的 Azure 服务主体。 了解有关此步骤的更多信息

Azure Kubernetes Service 集群要求

Kubernetes 集群必须满足以下要求,才能通过 Astra Control Service 发现和管理它。

Kubernetes 版本

集群必须运行 Kubernetes 1.21.x 至 1.23 版。

映像类型

所有节点池的映像类型必须为 Linux 。

集群状态

集群必须运行状况良好,并且至少有一个联机辅助节点,并且没有处于故障状态的辅助节点。

Azure 区域

集群必须位于 Azure NetApp Files 可用的区域。 "按区域查看 Azure 产品"

订阅。

集群必须位于启用了 Azure NetApp Files 的订阅中。您可以选择订阅 注册 Azure NetApp Files

vNet

请考虑以下 vNet 要求:

  • 集群必须位于可直接访问 Azure NetApp Files 委派子网的 vNet 中。 了解如何设置委派子网

  • 如果您的 Kubernetes 集群位于与另一个 vNet 中的 Azure NetApp Files 委派子网建立对等关系的 vNet 中,则对等连接的两端必须处于联机状态。

  • 请注意, vNet (包括对等 VNet )与 Azure NetApp Files 中使用的 IP 数量的默认限制为 1 , 000 。 "查看 Azure NetApp Files 资源限制"

    如果您即将达到限制,您有两种选择:

    • 您可以 "提交增加限制的请求"。如需帮助,请联系您的 NetApp 代表。

    • 创建新的 Amazon Kubernetes Service ( AKS )集群时,请为此集群指定一个新网络。创建新网络后,配置新子网并将子网委派给 Azure NetApp Files 。

外部卷快照控制器

集群必须安装 CSI 卷快照控制器。默认情况下,此控制器从 K8s 1.21 版开始安装,但您需要检查运行 1.19 和 1.20 版的集群。 "了解有关用于按需卷快照的外部快照控制器的更多信息"

安装 CSI 卷快照控制器

如中所述 [Azure Kubernetes Service cluster requirements], Kubernetes 集群必须安装 CSI 卷快照控制器。按照以下步骤在集群上安装控制器。

K8s 1.19 版的步骤
  1. 安装卷快照 CRD 。

    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-3.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-3.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-3.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml
  2. 创建快照控制器。

    如果您希望 Snapshot 控制器位于特定命名空间中,请先下载并编辑以下文件,然后再应用它们。

    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-3.0/deploy/kubernetes/snapshot-controller/rbac-snapshot-controller.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-3.0/deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml
K8s 1.20 版的步骤
  1. 安装卷快照 CRD 。

    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v4.0.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v4.0.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v4.0.0/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml
  2. 创建快照控制器。

    如果您希望 Snapshot 控制器位于特定命名空间中,请先下载并编辑以下文件,然后再应用它们。

    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v4.0.0/deploy/kubernetes/snapshot-controller/rbac-snapshot-controller.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v4.0.0/deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml

注册 Microsoft Azure

如果您没有 Microsoft Azure 帐户,请先注册 Microsoft Azure 。

步骤
  1. 转至 "Azure 订阅页面" 订阅 Azure 服务。

  2. 选择一个计划并按照说明完成订阅。

对于 Azure NetApp Files ,

注册 NetApp 资源提供商即可访问 Azure NetApp Files 。

Create a NetApp account

在 Azure NetApp Files 中创建 NetApp 帐户。

Set up a capacity pool

需要一个或多个容量池,这样 Astra 控制服务才能在容量池中配置永久性卷。Astra Control Service 不会为您创建容量池。

在为 Kubernetes 应用程序设置容量池时,请考虑以下事项:

  • 需要在将使用 Astra Control Service 管理 AKS 集群的同一 Azure 区域中创建容量池。

  • 容量池可以具有 " 超 " , " 高级 " 或 " 标准 " 服务级别。其中每个服务级别都是为满足不同的性能需求而设计的。Astra 控制服务支持所有这三项功能。

    您需要为要在 Kubernetes 集群中使用的每个服务级别设置一个容量池。

  • 在为要使用 Astra Control Service 保护的应用程序创建容量池之前,请为这些应用程序选择所需的性能和容量。

    配置适当的容量可确保用户可以根据需要创建永久性卷。如果容量不可用,则无法配置永久性卷。

  • Azure NetApp Files 容量池可以使用手动或自动 QoS 类型。Astra 控制服务支持自动 QoS 容量池。不支持手动 QoS 容量池。

Delegate a subnet to Azure NetApp Files

您需要将子网委派给 Azure NetApp Files ,以便 Astra 控制服务可以在该子网中创建永久性卷。请注意,通过 Azure NetApp Files ,您只能在一个 vNet 中拥有一个委派子网。

如果您使用的是对等 VNets ,则对等连接的两端必须处于联机状态: Kubernetes 集群所在的 vNet 和已委派 Azure NetApp Files 子网的 vNet 。

等待大约 10 分钟,然后发现在委派子网中运行的集群。

创建 Azure 服务主体

Astra 控制服务需要分配有贡献者角色的 Azure 服务主体。Astra 控制服务使用此服务主体来代表您促进 Kubernetes 应用程序数据管理。

服务主体是指专为应用程序,服务和工具而创建的身份。为服务主体分配角色将限制对特定 Azure 资源的访问。

按照以下步骤使用 Azure 命令行界面创建服务主体。您需要将输出保存在 JSON 文件中,并稍后将其提供给 Astra Control Service 。 "有关使用 CLI 的详细信息,请参见 Azure 文档"

以下步骤假定您有权创建服务主体,并且计算机上已安装 Microsoft Azure SDK ( AZ 命令)。

要求
  • 服务主体必须使用常规身份验证。不支持证书。

  • 必须为服务主体授予对您的 Azure 订阅的贡献者或所有者访问权限。

  • 您为范围选择的订阅或资源组必须包含 AKS 集群和您的 Azure NetApp Files 帐户。

步骤
  1. 确定 AKS 集群所在的订阅和租户 ID (这些集群是您要在 Astra Control Service 中管理的集群)。

    az configure --list-defaults
    az account list --output table
  2. 根据您使用的是整个订阅还是资源组,执行以下操作之一:

    • 创建服务主体,分配 " 贡献者 " 角色,并指定集群所在的整个订阅的范围。

      az ad sp create-for-rbac --name service-principal-name --role contributor --scopes /subscriptions/SUBSCRIPTION-ID
    • 创建服务主体,分配 " 贡献者 " 角色,并指定集群所在的资源组。

      az ad sp create-for-rbac --name service-principal-name --role contributor --scopes /subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-ID
  3. 将生成的 Azure 命令行界面输出存储为 JSON 文件。

    您需要提供此文件,以便 Astra Control Service 能够发现您的 AKS 集群并管理 Kubernetes 数据管理操作。 "了解如何在 Astra Control Service 中管理凭据"

  4. 可选:将订阅 ID 添加到 JSON 文件中,以便 Astra 控制服务在您选择此文件时自动填充此 ID 。

    否则,您需要在出现提示时在 Astra Control Service 中输入订阅 ID 。

    • 示例 *

    {
      "appId": "0db3929a-bfb0-4c93-baee-aaf8",
      "displayName": "sp-example-dev-sandbox",
      "name": "http://sp-example-dev-sandbox",
      "password": "mypassword",
      "tenant": "011cdf6c-7512-4805-aaf8-7721afd8ca37",
      "subscriptionId": "99ce999a-8c99-99d9-a9d9-99cce99f99ad"
    }
  5. 可选:测试您的服务主体。根据您的服务主体使用的范围,从以下示例命令中进行选择。

    订阅范围
    az login --service-principal --username APP-ID-SERVICEPRINCIPAL --password PASSWORD --tenant TENANT-ID
    az group list --subscription SUBSCRIPTION-ID
    az aks list --subscription SUBSCRIPTION-ID
    az storage container list --subscription SUBSCRIPTION-ID
    资源组范围
    az login --service-principal --username APP-ID-SERVICEPRINCIPAL --password PASSWORD --tenant TENANT-ID
    az aks list --subscription SUBSCRIPTION-ID --resource-group RESOURCE-GROUP-ID