设置 Astra 控制中心
安装 Astra 控制中心,登录到 UI 并更改密码后,您将需要设置许可证,添加集群,管理存储以及添加存储分段。
添加 Astra 控制中心的许可证
您可以使用Astra Control UI或添加新许可证 "API" 获得完整的 Astra 控制中心功能。如果没有许可证,则只能使用 Astra 控制中心来管理用户和添加新集群。
Astra控制中心许可证使用Kubernetes CPU单元测量CPU资源、并计算分配给所有受管Kubernetes集群的工作节点的CPU资源。许可证基于vCPU使用量。有关如何计算许可证的详细信息、请参见 "许可"。
如果您的安装增长到超过许可的 CPU 单元数,则 Astra 控制中心将阻止您管理新应用程序。超过容量时,将显示警报。 |
要更新现有评估版或完整许可证、请参见 "更新现有许可证"。 |
-
访问新安装的Astra Control Center实例。
-
管理员角色权限。
-
答 "NetApp 许可证文件" (nlf)。
-
登录到 Astra 控制中心 UI 。
-
选择 * 帐户 * > * 许可证 * 。
-
选择 * 添加许可证 * 。
-
浏览到您下载的许可证文件( NLF )。
-
选择 * 添加许可证 * 。
-
帐户 * > * 许可证 * 页面显示许可证信息,到期日期,许可证序列号,帐户 ID 和使用的 CPU 单元。
-
如果您拥有评估版许可证、并且不向AutoSupport 发送数据、请确保存储您的帐户ID、以避免在Astra控制中心发生故障时丢失数据。 |
使用Astra Control准备用于集群管理的环境
在添加集群之前、应确保满足以下前提条件。您还应运行资格检查、以确保集群已准备好添加到Astra控制中心并创建集群管理角色。
-
确保集群中的工作节点已配置适当的存储驱动程序、以便Pod可以与后端存储进行交互。
-
您的环境符合 "操作环境要求" 适用于Astra Trident和Astra控制中心。
-
一个版本的Astra Trident "受Astra控制中心支持" 已安装:
您可以 "部署Astra Trident" 使用Trident运算符(手动或使用Helm图表)或 tridentctl
。在安装或升级Astra Trident之前、请查看 "支持的前端、后端和主机配置"。 -
* 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 控制中心。
-
检查 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 文档" 有关说明,请参见。 -
确保Pod正在运行:
kubectl get pods -n trident
-
确定存储类是否正在使用受支持的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
步骤
-
创建服务帐户:
-
创建名为的服务帐户文件
astracontrol-service-account.yaml
。根据需要调整名称和命名空间。如果在此处进行了更改,则应在以下步骤中应用相同的更改。
astracontrol-service-account.yaml
+
apiVersion: v1 kind: ServiceAccount metadata: name: astracontrol-service-account namespace: default
-
应用服务帐户:
kubectl apply -f astracontrol-service-account.yaml
-
-
使用Astra Control管理集群所需的最低权限创建一个有限的集群角色:
-
创建
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
-
应用集群角色:
kubectl apply -f astra-admin-account.yaml
-
-
为集群角色创建与服务帐户的集群角色绑定:
-
创建
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
-
应用集群角色绑定:
kubectl apply -f astracontrol-clusterrolebinding.yaml
-
-
列出服务帐户密码、替换
<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" 一词的服务帐户名称的索引。 -
按如下所示生成 kubeconfig :
-
创建
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
-
获取用于将其应用于 Kubernetes 集群的命令。
source create-kubeconfig.sh
-
-
(可选)将kubeconfig重命名为集群的有意义名称。
mv kubeconfig-sa YOUR_CLUSTER_NAME_kubeconfig
下一步是什么?
现在、您已确认满足了这些前提条件、您已做好准备 添加集群。
添加集群
要开始管理应用程序,请添加 Kubernetes 集群并将其作为计算资源进行管理。您必须为 Astra 控制中心添加一个集群,才能发现您的 Kubernetes 应用程序。
我们建议,在将其他集群添加到 Astra 控制中心进行管理之前,先由 Astra 控制中心管理其部署所在的集群。要发送 Kubemmetrics 数据和集群关联数据以获取指标和故障排除信息,必须对初始集群进行管理。 |
-
在添加集群之前,请查看并执行必要的操作 前提条件任务。
-
从信息板或集群菜单导航:
-
从"Resource Summary"的"信息板"中、从"Clusters"窗格中选择"添加"。
-
在左侧导航区域中、选择*集群*、然后从集群页面中选择*添加集群*。
-
-
在打开的*添加集群*窗口中、上传
kubeconfig.yaml
归档或粘贴的内容kubeconfig.yaml
文件。 kubeconfig.yaml
文件应仅包含一个集群的集群凭据*。创建自己的 kubeconfig
file中、您只能定义*一*上下文元素。请参见 "Kubernetes 文档" 有关创建的信息kubeconfig
文件。如果您使用为有限集群角色创建了kubeconfig 上述过程、请务必在此步骤中上传或粘贴kubeconfig。 -
请提供凭据名称。默认情况下,凭据名称会自动填充为集群的名称。
-
选择 * 下一步 * 。
-
选择要用于此Kubernetes集群的默认存储类、然后选择*下一步*。
您应选择一个由 ONTAP 存储提供支持的 Trident 存储类。 -
查看相关信息、如果一切正常、请选择*添加*。
集群将进入*正在发现*状态、然后更改为*运行状况良好*。现在、您正在使用Astra控制中心管理集群。
添加要在 Astra 控制中心中管理的集群后,部署监控操作员可能需要几分钟的时间。在此之前,通知图标将变为红色并记录一个 * 监控代理状态检查失败 * 事件。您可以忽略此问题,因为当 Astra 控制中心获得正确状态时,问题描述将解析。如果问题描述 在几分钟内未解析、请转至集群并运行 oc get pods -n netapp-monitoring 作为起点。您需要查看监控操作员日志以调试此问题。
|
添加存储后端
您可以将现有ONTAP 存储后端添加到Astra控制中心以管理其资源。
通过将 Astra Control 中的存储集群作为存储后端进行管理,您可以在永久性卷( PV )和存储后端之间建立链接,并获得其他存储指标。
-
从左侧导航区域的信息板中、选择*后端*。
-
执行以下操作之一:
-
新建后端:选择*添加*以管理现有后端、选择* ONTAP 、然后选择*下一步。
-
已发现后端:从操作菜单中、从受管集群中的已发现后端选择*管理*。
-
-
输入ONTAP 集群管理IP地址和管理员凭据。凭据必须是集群范围的凭据。
您在此处输入凭据的用户必须具有 ontapi
在ONTAP 集群上的ONTAP 系统管理器中启用用户登录访问方法。如果您计划使用SnapMirror复制、请应用具有"admin"角色的用户凭据、该角色具有访问方法ontapi
和http
、在源和目标ONTAP 集群上。请参见 "管理ONTAP 文档中的用户帐户" 有关详细信息 … -
选择 * 下一步 * 。
-
确认后端详细信息并选择 * 管理 * 。
后端将显示在中 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的所有对象存储供应商。 |
-
在左侧导航区域中,选择 * 桶 * 。
-
选择 * 添加 * 。
-
选择存储分段类型。
添加存储分段时,请选择正确的存储分段提供程序,并为该提供程序提供正确的凭据。例如, UI 接受 NetApp ONTAP S3 作为类型并接受 StorageGRID 凭据;但是,这将发生原因使使用此存储分段执行所有未来应用程序备份和还原失败。 -
输入现有存储分段名称和可选的问题描述。
存储分段名称和问题描述 显示为备份位置、您可以稍后在创建备份时选择该位置。此名称也会在配置保护策略期间显示。 -
输入 S3 端点的名称或 IP 地址。
-
在*选择凭据*下、选择*添加*或*使用现有*选项卡。
-
如果选择*添加*:
-
在 Astra Control 中输入凭据名称,以便与其他凭据区分开。
-
通过粘贴剪贴板中的内容来输入访问 ID 和机密密钥。
-
-
如果选择*使用现有*:
-
选择要用于存储分段的现有凭据。
-
-
-
选择 …
Add
。添加存储分段时、Astra Control会使用默认存储分段指示符标记一个存储分段。您创建的第一个存储分段将成为默认存储分段。添加分段时、您可以稍后决定添加 "设置另一个默认存储分段"。
下一步是什么?
现在、您已登录并将集群添加到Astra控制中心、即可开始使用Astra控制中心的应用程序数据管理功能。