Skip to main content
本产品推出了新版本。
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

设置 Astra 控制中心

贡献者

安装 Astra 控制中心,登录到 UI 并更改密码后,您将需要设置许可证,添加集群,管理存储以及添加存储分段。

添加 Astra 控制中心的许可证

您可以使用Astra Control UI或添加新许可证 "API" 获得完整的 Astra 控制中心功能。如果没有许可证,则只能使用 Astra 控制中心来管理用户和添加新集群。

Astra控制中心许可证使用Kubernetes CPU单元测量CPU资源、并计算分配给所有受管Kubernetes集群的工作节点的CPU资源。许可证基于vCPU使用量。有关如何计算许可证的详细信息、请参见 "许可"

备注 如果您的安装增长到超过许可的 CPU 单元数,则 Astra 控制中心将阻止您管理新应用程序。超过容量时,将显示警报。
备注 要更新现有评估版或完整许可证、请参见 "更新现有许可证"
您需要的内容
步骤
  1. 登录到 Astra 控制中心 UI 。

  2. 选择 * 帐户 * > * 许可证 * 。

  3. 选择 * 添加许可证 * 。

  4. 浏览到您下载的许可证文件( NLF )。

  5. 选择 * 添加许可证 * 。

    • 帐户 * > * 许可证 * 页面显示许可证信息,到期日期,许可证序列号,帐户 ID 和使用的 CPU 单元。

备注 如果您拥有评估版许可证、并且不向AutoSupport 发送数据、请确保存储您的帐户ID、以避免在Astra控制中心发生故障时丢失数据。

使用Astra Control准备用于集群管理的环境

在添加集群之前、应确保满足以下前提条件。您还应运行资格检查、以确保集群已准备好添加到Astra控制中心并创建集群管理角色。

您需要的内容
  • 确保集群中的工作节点已配置适当的存储驱动程序、以便Pod可以与后端存储进行交互。

  • 您的环境符合 "操作环境要求" 适用于Astra Trident和Astra控制中心。

  • 一个版本的Astra Trident "受Astra控制中心支持" 已安装:

    备注 您可以 "部署Astra Trident" 使用Trident运算符(手动或使用Helm图表)或 tridentctl。在安装或升级Astra Trident之前、请查看 "支持的前端、后端和主机配置"
    • 已配置Trident存储后端:至少必须有一个Astra Trident存储后端 "已配置" 在集群上。

    • 已配置Trident存储类:至少必须有一个Astra Trident存储类 "已配置" 在集群上。如果配置了默认存储类、请确保它是唯一具有默认标注的存储类。

    • 已安装并配置* Astra Trident卷快照控制器和卷快照类*:卷快照控制器必须为 "已安装" 以便可以在Astra Control中创建快照。至少一个Astra Trident VolumeSnapshotClass 已经 "设置" 由管理员执行。

  • * Kubeconfig accessible*:您可以访问 "cluster kubeconfig" 这仅包括一个上下文元素。

  • * ONTAP 凭据*:您需要在备用ONTAP 系统上设置ONTAP 凭据以及超级用户和用户ID、以便使用Astra控制中心备份和还原应用程序。

    在ONTAP 命令行中运行以下命令:

    export-policy rule modify -vserver <storage virtual machine name> -policyname <policy name> -ruleindex 1 -superuser sys
    export-policy rule modify -vserver <storage virtual machine name> -policyname <policy name> -ruleindex 1 -anon 65534
  • *仅Rancher *:在Rancher环境中管理应用程序集群时、请修改Rancher提供的kubeconfig文件中的应用程序集群默认上下文、以使用控制平面上下文、而不是Rancher API服务器上下文。这样可以减少 Rancher API 服务器上的负载并提高性能。

运行资格检查

运行以下资格检查,以确保您的集群已准备好添加到 Astra 控制中心。

步骤
  1. 检查 Trident 版本。

    kubectl get tridentversions -n trident

    如果存在 Trident ,您将看到类似于以下内容的输出:

    NAME      VERSION
    trident   22.10.0

    如果 Trident 不存在,您将看到类似于以下内容的输出:

    error: the server doesn't have a resource type "tridentversions"
    备注 如果未安装 Trident 或安装的版本不是最新的,则需要先安装最新版本的 Trident ,然后再继续操作。请参见 "Trident 文档" 有关说明,请参见。
  2. 确保Pod正在运行:

    kubectl get pods -n trident
  3. 确定存储类是否正在使用受支持的Trident驱动程序。配置程序名称应为 csi.trident.netapp.io。请参见以下示例:

    kubectl get sc

    响应示例:

    NAME                  PROVISIONER            RECLAIMPOLICY  VOLUMEBINDINGMODE  ALLOWVOLUMEEXPANSION  AGE
    ontap-gold (default)  csi.trident.netapp.io  Delete         Immediate          true                  5d23h

创建一个有限的集群角色kubeconfig

您可以选择为Astra控制中心创建有限的管理员角色。这不是Astra控制中心设置所需的操作步骤。此操作步骤 有助于创建一个单独的kubeconfig、以限制Astra Control对其管理的集群的权限。

您需要的内容

在完成操作步骤 步骤之前、请确保您对要管理的集群具有以下信息:

  • 已安装kubectl v1.23或更高版本

  • kubectl访问要使用Astra控制中心添加和管理的集群

    备注 对于此操作步骤 、您不需要对运行Astra控制中心的集群进行kubectl访问。
  • 要使用活动环境的集群管理员权限管理的集群的活动kubeconfig

步骤
  1. 创建服务帐户:

    1. 创建名为的服务帐户文件 astracontrol-service-account.yaml

      根据需要调整名称和命名空间。如果在此处进行了更改,则应在以下步骤中应用相同的更改。

    astracontrol-service-account.yaml

    +

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: astracontrol-service-account
      namespace: default
    1. 应用服务帐户:

      kubectl apply -f astracontrol-service-account.yaml
  2. 使用Astra Control管理集群所需的最低权限创建一个有限的集群角色:

    1. 创建 ClusterRole 文件已调用 astra-admin-account.yaml

      根据需要调整名称和命名空间。如果在此处进行了更改,则应在以下步骤中应用相同的更改。

    astra-admin-account.yaml

    +

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: astra-admin-account
    rules:
    
    # Get, List, Create, and Update all resources
    # Necessary to backup and restore all resources in an app
    - apiGroups:
      - '*'
      resources:
      - '*'
      verbs:
      - get
      - list
      - create
      - patch
    
    # Delete Resources
    # Necessary for in-place restore and AppMirror failover
    - apiGroups:
      - ""
      - apps
      - autoscaling
      - batch
      - crd.projectcalico.org
      - extensions
      - networking.k8s.io
      - policy
      - rbac.authorization.k8s.io
      - snapshot.storage.k8s.io
      - trident.netapp.io
      resources:
      - configmaps
      - cronjobs
      - daemonsets
      - deployments
      - horizontalpodautoscalers
      - ingresses
      - jobs
      - namespaces
      - networkpolicies
      - persistentvolumeclaims
      - poddisruptionbudgets
      - pods
      - podtemplates
      - podsecuritypolicies
      - replicasets
      - replicationcontrollers
      - replicationcontrollers/scale
      - rolebindings
      - roles
      - secrets
      - serviceaccounts
      - services
      - statefulsets
      - tridentmirrorrelationships
      - tridentsnapshotinfos
      - volumesnapshots
      - volumesnapshotcontents
      verbs:
      - delete
    
    # Watch resources
    # Necessary to monitor progress
    - apiGroups:
      - ""
      resources:
      - pods
      - replicationcontrollers
      - replicationcontrollers/scale
      verbs:
      - watch
    
    # Update resources
    - apiGroups:
      - ""
      - build.openshift.io
      - image.openshift.io
      resources:
      - builds/details
      - replicationcontrollers
      - replicationcontrollers/scale
      - imagestreams/layers
      - imagestreamtags
      - imagetags
      verbs:
      - update
    
    # Use PodSecurityPolicies
    - apiGroups:
      - extensions
      - policy
      resources:
      - podsecuritypolicies
      verbs:
      - use
    1. 应用集群角色:

      kubectl apply -f astra-admin-account.yaml
  3. 为集群角色创建与服务帐户的集群角色绑定:

    1. 创建 ClusterRoleBinding 文件已调用 astracontrol-clusterrolebinding.yaml

      根据需要调整创建服务帐户时修改的任何名称和命名空间。

    astracontrol-clusterrolebinding.yaml

    +

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: astracontrol-admin
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: astra-admin-account
    subjects:
    - kind: ServiceAccount
      name: astracontrol-service-account
      namespace: default
    1. 应用集群角色绑定:

      kubectl apply -f astracontrol-clusterrolebinding.yaml
  4. 列出服务帐户密码、替换 <context> 使用适用于您的安装的正确环境:

    kubectl get serviceaccount astracontrol-service-account --context <context> --namespace default -o json

    输出的结尾应类似于以下内容:

    "secrets": [
    { "name": "astracontrol-service-account-dockercfg-vhz87"},
    { "name": "astracontrol-service-account-token-r59kr"}
    ]

    中每个元素的索引 secrets 阵列以0开头。在上面的示例中、是的索引 astracontrol-service-account-dockercfg-vhz87 将为0、并为创建索引 astracontrol-service-account-token-r59kr 将为1。在输出中,记下包含 "token" 一词的服务帐户名称的索引。

  5. 按如下所示生成 kubeconfig :

    1. 创建 create-kubeconfig.sh 文件替换 TOKEN_INDEX 在以下脚本的开头、使用正确的值。

      create-kubeconfig.sh
      # Update these to match your environment.
      # Replace TOKEN_INDEX with the correct value
      # from the output in the previous step. If you
      # didn't change anything else above, don't change
      # anything else here.
      
      SERVICE_ACCOUNT_NAME=astracontrol-service-account
      NAMESPACE=default
      NEW_CONTEXT=astracontrol
      KUBECONFIG_FILE='kubeconfig-sa'
      
      CONTEXT=$(kubectl config current-context)
      
      SECRET_NAME=$(kubectl get serviceaccount ${SERVICE_ACCOUNT_NAME} \
        --context ${CONTEXT} \
        --namespace ${NAMESPACE} \
        -o jsonpath='{.secrets[TOKEN_INDEX].name}')
      TOKEN_DATA=$(kubectl get secret ${SECRET_NAME} \
        --context ${CONTEXT} \
        --namespace ${NAMESPACE} \
        -o jsonpath='{.data.token}')
      
      TOKEN=$(echo ${TOKEN_DATA} | base64 -d)
      
      # Create dedicated kubeconfig
      # Create a full copy
      kubectl config view --raw > ${KUBECONFIG_FILE}.full.tmp
      
      # Switch working context to correct context
      kubectl --kubeconfig ${KUBECONFIG_FILE}.full.tmp config use-context ${CONTEXT}
      
      # Minify
      kubectl --kubeconfig ${KUBECONFIG_FILE}.full.tmp \
        config view --flatten --minify > ${KUBECONFIG_FILE}.tmp
      
      # Rename context
      kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \
        rename-context ${CONTEXT} ${NEW_CONTEXT}
      
      # Create token user
      kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \
        set-credentials ${CONTEXT}-${NAMESPACE}-token-user \
        --token ${TOKEN}
      
      # Set context to use token user
      kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \
        set-context ${NEW_CONTEXT} --user ${CONTEXT}-${NAMESPACE}-token-user
      
      # Set context to correct namespace
      kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \
        set-context ${NEW_CONTEXT} --namespace ${NAMESPACE}
      
      # Flatten/minify kubeconfig
      kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \
        view --flatten --minify > ${KUBECONFIG_FILE}
      
      # Remove tmp
      rm ${KUBECONFIG_FILE}.full.tmp
      rm ${KUBECONFIG_FILE}.tmp
    2. 获取用于将其应用于 Kubernetes 集群的命令。

      source create-kubeconfig.sh
  6. (可选)将kubeconfig重命名为集群的有意义名称。

    mv kubeconfig-sa YOUR_CLUSTER_NAME_kubeconfig

下一步是什么?

现在、您已确认满足了这些前提条件、您已做好准备 添加集群

添加集群

要开始管理应用程序,请添加 Kubernetes 集群并将其作为计算资源进行管理。您必须为 Astra 控制中心添加一个集群,才能发现您的 Kubernetes 应用程序。

提示 我们建议,在将其他集群添加到 Astra 控制中心进行管理之前,先由 Astra 控制中心管理其部署所在的集群。要发送 Kubemmetrics 数据和集群关联数据以获取指标和故障排除信息,必须对初始集群进行管理。
您需要的内容
步骤
  1. 从信息板或集群菜单导航:

    • 从"Resource Summary"的"信息板"中、从"Clusters"窗格中选择"添加"。

    • 在左侧导航区域中、选择*集群*、然后从集群页面中选择*添加集群*。

  2. 在打开的*添加集群*窗口中、上传 kubeconfig.yaml 归档或粘贴的内容 kubeconfig.yaml 文件

    备注 kubeconfig.yaml 文件应仅包含一个集群的集群凭据*。
    重要说明 创建自己的 kubeconfig file中、您只能定义*一*上下文元素。请参见 "Kubernetes 文档" 有关创建的信息 kubeconfig 文件。如果您使用为有限集群角色创建了kubeconfig 上述过程、请务必在此步骤中上传或粘贴kubeconfig。
  3. 请提供凭据名称。默认情况下,凭据名称会自动填充为集群的名称。

  4. 选择 * 下一步 * 。

  5. 选择要用于此Kubernetes集群的默认存储类、然后选择*下一步*。

    备注 您应选择一个由 ONTAP 存储提供支持的 Trident 存储类。
  6. 查看相关信息、如果一切正常、请选择*添加*。

结果

集群将进入*正在发现*状态、然后更改为*运行状况良好*。现在、您正在使用Astra控制中心管理集群。

重要说明 添加要在 Astra 控制中心中管理的集群后,部署监控操作员可能需要几分钟的时间。在此之前,通知图标将变为红色并记录一个 * 监控代理状态检查失败 * 事件。您可以忽略此问题,因为当 Astra 控制中心获得正确状态时,问题描述将解析。如果问题描述 在几分钟内未解析、请转至集群并运行 oc get pods -n netapp-monitoring 作为起点。您需要查看监控操作员日志以调试此问题。

添加存储后端

您可以将现有ONTAP 存储后端添加到Astra控制中心以管理其资源。

通过将 Astra Control 中的存储集群作为存储后端进行管理,您可以在永久性卷( PV )和存储后端之间建立链接,并获得其他存储指标。

步骤
  1. 从左侧导航区域的信息板中、选择*后端*。

  2. 执行以下操作之一:

    • 新建后端:选择*添加*以管理现有后端、选择* ONTAP 、然后选择*下一步

    • 已发现后端:从操作菜单中、从受管集群中的已发现后端选择*管理*。

  3. 输入ONTAP 集群管理IP地址和管理员凭据。凭据必须是集群范围的凭据。

    备注 您在此处输入凭据的用户必须具有 ontapi 在ONTAP 集群上的ONTAP 系统管理器中启用用户登录访问方法。如果您计划使用SnapMirror复制、请应用具有"admin"角色的用户凭据、该角色具有访问方法 ontapihttp、在源和目标ONTAP 集群上。请参见 "管理ONTAP 文档中的用户帐户" 有关详细信息 …​
  4. 选择 * 下一步 * 。

  5. 确认后端详细信息并选择 * 管理 * 。

结果

后端将显示在中 Healthy 包含摘要信息的列表中的状态。

备注 您可能需要刷新页面才能显示后端。

添加存储分段

您可以使用Astra Control UI或添加存储分段 "API"。如果要备份应用程序和永久性存储,或者要跨集群克隆应用程序,则必须添加对象存储分段提供程序。Astra Control 会将这些备份或克隆存储在您定义的对象存储分段中。

如果您要将应用程序配置和永久性存储克隆到同一集群、则无需在Astra Control中使用存储分段。应用程序快照功能不需要存储分段。

您需要的内容
  • 可从由Astra控制中心管理的集群访问的存储分段。

  • 存储分段的凭据。

  • 包含以下类型的存储分段:

    • NetApp ONTAP S3

    • NetApp StorageGRID S3

    • Microsoft Azure

    • 通用 S3

备注 Amazon Web Services (AWS)和Google Cloud Platform (GCP)使用通用S3存储分段类型。
备注 虽然Astra控制中心支持将Amazon S3作为通用S3存储分段提供商、但Astra控制中心可能不支持声称支持Amazon S3的所有对象存储供应商。
步骤
  1. 在左侧导航区域中,选择 * 桶 * 。

  2. 选择 * 添加 * 。

  3. 选择存储分段类型。

    备注 添加存储分段时,请选择正确的存储分段提供程序,并为该提供程序提供正确的凭据。例如, UI 接受 NetApp ONTAP S3 作为类型并接受 StorageGRID 凭据;但是,这将发生原因使使用此存储分段执行所有未来应用程序备份和还原失败。
  4. 输入现有存储分段名称和可选的问题描述。

    提示 存储分段名称和问题描述 显示为备份位置、您可以稍后在创建备份时选择该位置。此名称也会在配置保护策略期间显示。
  5. 输入 S3 端点的名称或 IP 地址。

  6. 在*选择凭据*下、选择*添加*或*使用现有*选项卡。

    • 如果选择*添加*:

      1. 在 Astra Control 中输入凭据名称,以便与其他凭据区分开。

      2. 通过粘贴剪贴板中的内容来输入访问 ID 和机密密钥。

    • 如果选择*使用现有*:

      1. 选择要用于存储分段的现有凭据。

  7. 选择 …​ Add

    备注 添加存储分段时、Astra Control会使用默认存储分段指示符标记一个存储分段。您创建的第一个存储分段将成为默认存储分段。添加分段时、您可以稍后决定添加 "设置另一个默认存储分段"

下一步是什么?

现在、您已登录并将集群添加到Astra控制中心、即可开始使用Astra控制中心的应用程序数据管理功能。

了解更多信息