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

使用标准流程安装 Astra 控制中心

贡献者

要安装Astra Control Center、请下载安装映像并执行以下步骤。您可以使用此操作步骤在互联网连接或通风环境中安装 Astra 控制中心。

有关Astra控制中心安装过程的演示、请参见 "此视频"

开始之前
  • 满足环境前提条件"开始安装之前,请为 Astra Control Center 部署准备您的环境"

    提示 在第三个容错域或二级站点中部署A作用 力控制中心。对于应用程序复制和无缝灾难恢复、建议执行此操作。
  • 确保服务运行状况良好:检查所有API服务是否均处于运行状况良好且可用:

    kubectl get apiservices
  • 确保具有可路由的FQDN:您计划使用的Astra FQDN可以路由到集群。这意味着您的内部 DNS 服务器中有一个 DNS 条目,或者您正在使用已注册的核心 URL 路由。

  • 配置证书管理器:如果集群中已存在证书管理器,则需要执行某些操作 "前提条件步骤" 这样、Astra控制中心就不会尝试安装自己的证书管理器。默认情况下、Astra控制中心会在安装期间安装自己的证书管理器。

  • (仅限ONTAP SAN驱动程序)启用多路径:如果使用的是ONTAP SAN驱动程序、请确保在所有Kubernetes集群上启用了多路径。

您还应考虑以下事项:

  • 获取NetApp Astra控件映像注册表的访问权限

    您可以选择从NetApp映像注册表中获取Astra控件的安装映像和增强功能、例如Astra控件配置程序。

    1. 记录您登录注册表所需的Astra Control帐户ID。

      您可以在Astra Control Service Web UI中查看您的帐户ID。选择页面右上角的图图标,选择*API access*并记下您的帐户ID。

    2. 在同一页面中,选择*Generate API t令牌*并将API令牌字符串复制到剪贴板,然后将其保存在编辑器中。

    3. 登录到Asta Control注册表:

      docker login cr.astra.netapp.io -u <account-id> -p <api-token>
  • 安装用于安全通信的服务网格:强烈建议使用保护Astra Control主机集群通信通道的安全 "支持的服务网格"

    重要说明 只能在Astra Control Center期间将Astra Control Center与服务网格集成 "安装" 而不是独立于此过程。不支持从网格化环境切换回非网格化环境。

    要使用Isio服务网格、您需要执行以下操作:

    • 添加 istio-injection:enabled label 在部署Asta Control Center之前将Asta命名空间添加到Asta命名空间。

    • 使用 Generic 入口设置 并为提供备用入口 外部负载平衡

    • 对于Red Hat OpenShift集群、您需要进行定义 NetworkAttachmentDefinition 在所有关联的Astra Control Center名空间上 (netapp-acc-operatornetapp-accnetapp-monitoring 或任何已替换的自定义卷)。

      cat <<EOF | oc -n netapp-acc-operator create -f -
      apiVersion: "k8s.cni.cncf.io/v1"
      kind: NetworkAttachmentDefinition
      metadata:
        name: istio-cni
      EOF
      
      cat <<EOF | oc -n netapp-acc create -f -
      apiVersion: "k8s.cni.cncf.io/v1"
      kind: NetworkAttachmentDefinition
      metadata:
        name: istio-cni
      EOF
      
      cat <<EOF | oc -n netapp-monitoring create -f -
      apiVersion: "k8s.cni.cncf.io/v1"
      kind: NetworkAttachmentDefinition
      metadata:
        name: istio-cni
      EOF
步骤

要安装 Astra 控制中心,请执行以下步骤:

重要说明 请勿删除Astra Control Center运算符(例如、 kubectl delete -f astra_control_center_operator_deploy.yaml)、以避免删除Pod。

下载并提取Astra控制中心

从以下位置之一下载Astra Control Center映像:

  • Astra控制服务映像注册表:如果您不对Astra控制中心映像使用本地注册表,或者如果您更喜欢使用此方法从NetApp 支持站点 下载捆绑包,请使用此选项。

  • Astra:如果将本地注册表与NetApp 支持站点 控制中心映像一起使用,请使用此选项。

Astra Control图像注册表
  1. 登录Asta Control Service。

  2. 在信息板上,选择*Deploy a self-managed instance* of Asta Control*。

  3. 按照说明登录到Astra Control映像注册表、提取Astra Control Center安装映像并提取该映像。

NetApp 支持站点
  1. 下载包含Astra Control Center的软件包 (astra-control-center-[version].tar.gz) "Astra Control Center下载页面"

  2. (建议但可选)下载Astra控制中心的证书和签名包 (astra-control-center-certs-[version].tar.gz)以验证分发包的签名。

    tar -vxzf astra-control-center-certs-[version].tar.gz
    openssl dgst -sha256 -verify certs/AstraControlCenter-public.pub -signature certs/astra-control-center-[version].tar.gz.sig astra-control-center-[version].tar.gz

    此时将显示输出 Verified OK 验证成功后。

  3. 从Astra Control Center捆绑包中提取映像:

    tar -vxzf astra-control-center-[version].tar.gz

如果使用本地注册表、请完成其他步骤

如果您计划将Astra控制中心捆绑包推送到本地注册表、则需要使用NetApp Astra kubect命令行插件。

安装NetApp Astra kubectl插件

要安装最新的NetApp Astra kubecl命令行插件、请完成以下步骤。

开始之前

NetApp可为不同的CPU架构和操作系统提供插件二进制文件。在执行此任务之前、您需要了解您的CPU和操作系统。

如果您已从先前安装中安装了插件、 "确保您已安装最新版本" 在完成这些步骤之前。

步骤
  1. 列出可用的NetApp Astra kubect插件二进制文件:

    备注 kubectl插件库是tar包的一部分、并会解压缩到文件夹中 kubectl-astra
    ls kubectl-astra/
  2. 将操作系统和CPU架构所需的文件移至当前路径、并将其重命名为 kubectl-astra

    cp kubectl-astra/<binary-name> /usr/local/bin/kubectl-astra

将映像添加到注册表

  1. 如果您计划将Astra Control Center捆绑包推送到本地注册表、请为容器引擎完成相应的步骤顺序:

    Docker
    1. 更改为tarball的根目录。您应看到 acc.manifest.bundle.yaml 文件和以下目录:

      acc/
      kubectl-astra/
      acc.manifest.bundle.yaml

    2. 将Astra Control Center映像目录中的软件包映像推送到本地注册表。在运行之前、请进行以下替换 push-images 命令:

      • 将<BUNDLE_FILE> 替换为Astra Control捆绑包文件的名称 (acc.manifest.bundle.yaml)。

      • 将<MY_FULL_REGISTRY_PATH> 替换为Docker存储库的URL;例如 "https://<docker-registry>"

      • 将<MY_REGISTRY_USER> 替换为用户名。

      • 将<MY_REGISTRY_TOKEN> 替换为注册表的授权令牌。

        kubectl astra packages push-images -m <BUNDLE_FILE> -r <MY_FULL_REGISTRY_PATH> -u <MY_REGISTRY_USER> -p <MY_REGISTRY_TOKEN>
    Podman
    1. 更改为tarball的根目录。您应看到此文件和目录:

      acc/
      kubectl-astra/
      acc.manifest.bundle.yaml

    2. 登录到注册表:

      podman login <YOUR_REGISTRY>
    3. 准备并运行以下针对您使用的Podman版本自定义的脚本之一。将<MY_FULL_REGISTRY_PATH> 替换为包含任何子目录的存储库的URL。

      Podman 4
      export REGISTRY=<MY_FULL_REGISTRY_PATH>
      export PACKAGENAME=acc
      export PACKAGEVERSION=24.02.0-69
      export DIRECTORYNAME=acc
      for astraImageFile in $(ls ${DIRECTORYNAME}/images/*.tar) ; do
      astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image: //')
      astraImageNoPath=$(echo ${astraImage} | sed 's:.*/::')
      podman tag ${astraImageNoPath} ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath}
      podman push ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath}
      done
      Podman 3
      export REGISTRY=<MY_FULL_REGISTRY_PATH>
      export PACKAGENAME=acc
      export PACKAGEVERSION=24.02.0-69
      export DIRECTORYNAME=acc
      for astraImageFile in $(ls ${DIRECTORYNAME}/images/*.tar) ; do
      astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image: //')
      astraImageNoPath=$(echo ${astraImage} | sed 's:.*/::')
      podman tag ${astraImageNoPath} ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath}
      podman push ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath}
      done
      备注 根据您的注册表配置、此脚本创建的映像路径应类似于以下内容:
      https://downloads.example.io/docker-astra-control-prod/netapp/astra/acc/24.02.0-69/image:version
  2. 更改目录:

    cd manifests

为具有身份验证要求的注册表设置命名空间和密钥

  1. 导出Astra Control Center主机集群的kubeconfig:

    export KUBECONFIG=[file path]
    重要说明 在完成安装之前、请确保您的kubeconfig"指向要安装Astra Control Center的集群。
  2. 如果您使用的注册表需要身份验证,则需要执行以下操作:

    1. 创建 NetApp-Acc-operator 命名空间:

      kubectl create ns netapp-acc-operator
    2. NetApp-Acc-operator 命名空间创建一个密钥。添加 Docker 信息并运行以下命令:

      备注 占位符 your_registry_path 应与您先前上传的映像的位置匹配(例如、 [Registry_URL]/netapp/astra/astracc/24.02.0-69)。
    kubectl create secret docker-registry astra-registry-cred -n netapp-acc-operator --docker-server=cr.astra.netapp.io --docker-username=[astra_account_id] --docker-password=[astra_api_token]

    +

    kubectl create secret docker-registry astra-registry-cred -n netapp-acc-operator --docker-server=[your_registry_path] --docker-username=[username] --docker-password=[token]

    +

    备注 如果在生成密钥后删除命名空间、请重新创建命名空间、然后重新生成命名空间的密钥。
    1. 创建 netapp-acc (或自定义命名的)命名空间。

      kubectl create ns [netapp-acc or custom namespace]
    2. 为创建密钥 netapp-acc (或自定义命名的)命名空间。根据您的注册表首选项、添加Docker信息并运行相应的命令之一:

      kubectl create secret docker-registry astra-registry-cred -n [netapp-acc or custom namespace] --docker-server=cr.astra.netapp.io --docker-username=[astra_account_id] --docker-password=[astra_api_token]
      kubectl create secret docker-registry astra-registry-cred -n [netapp-acc or custom namespace] --docker-server=[your_registry_path] --docker-username=[username] --docker-password=[token]

安装 Astra 控制中心操作员

  1. (仅限本地注册表)如果使用的是本地注册表、请完成以下步骤:

    1. 打开Asta控制中心操作员部署YAML:

      vim astra_control_center_operator_deploy.yaml
      备注 以下步骤将提供一个标注的YAML示例。
    2. 如果您使用的注册表需要身份验证,请将默认行 imagePullSecs : [] 替换为以下内容:

      imagePullSecrets: [{name: astra-registry-cred}]
    3. 更改 ASTRA_IMAGE_REGISTRYkube-rbac-proxy 将映像推送到注册表路径中 上一步

    4. 更改 ASTRA_IMAGE_REGISTRYacc-operator-controller-manager 将映像推送到注册表路径中 上一步

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        control-plane: controller-manager
      name: acc-operator-controller-manager
      namespace: netapp-acc-operator
    spec:
      replicas: 1
      selector:
        matchLabels:
          control-plane: controller-manager
      strategy:
        type: Recreate
      template:
        metadata:
          labels:
            control-plane: controller-manager
        spec:
          containers:
          - args:
            - --secure-listen-address=0.0.0.0:8443
            - --upstream=http://127.0.0.1:8080/
            - --logtostderr=true
            - --v=10
            image: ASTRA_IMAGE_REGISTRY/kube-rbac-proxy:v4.8.0
            name: kube-rbac-proxy
            ports:
            - containerPort: 8443
              name: https
          - args:
            - --health-probe-bind-address=:8081
            - --metrics-bind-address=127.0.0.1:8080
            - --leader-elect
            env:
            - name: ACCOP_LOG_LEVEL
              value: "2"
            - name: ACCOP_HELM_INSTALLTIMEOUT
              value: 5m
            image: ASTRA_IMAGE_REGISTRY/acc-operator:24.02.68
            imagePullPolicy: IfNotPresent
            livenessProbe:
              httpGet:
                path: /healthz
                port: 8081
              initialDelaySeconds: 15
              periodSeconds: 20
            name: manager
            readinessProbe:
              httpGet:
                path: /readyz
                port: 8081
              initialDelaySeconds: 5
              periodSeconds: 10
            resources:
              limits:
                cpu: 300m
                memory: 750Mi
              requests:
                cpu: 100m
                memory: 75Mi
            securityContext:
              allowPrivilegeEscalation: false
          imagePullSecrets: []
          securityContext:
            runAsUser: 65532
          terminationGracePeriodSeconds: 10
  2. 安装 Astra 控制中心操作员:

    kubectl apply -f astra_control_center_operator_deploy.yaml
    展开样本响应:
    namespace/netapp-acc-operator created
    customresourcedefinition.apiextensions.k8s.io/astracontrolcenters.astra.netapp.io created
    role.rbac.authorization.k8s.io/acc-operator-leader-election-role created
    clusterrole.rbac.authorization.k8s.io/acc-operator-manager-role created
    clusterrole.rbac.authorization.k8s.io/acc-operator-metrics-reader created
    clusterrole.rbac.authorization.k8s.io/acc-operator-proxy-role created
    rolebinding.rbac.authorization.k8s.io/acc-operator-leader-election-rolebinding created
    clusterrolebinding.rbac.authorization.k8s.io/acc-operator-manager-rolebinding created
    clusterrolebinding.rbac.authorization.k8s.io/acc-operator-proxy-rolebinding created
    configmap/acc-operator-manager-config created
    service/acc-operator-controller-manager-metrics-service created
    deployment.apps/acc-operator-controller-manager created
  3. 验证Pod是否正在运行:

    kubectl get pods -n netapp-acc-operator

配置 Astra 控制中心

  1. 编辑Astra Control Center自定义资源(CR)文件 (astra_control_center.yaml)进行帐户、支持、注册表和其他必要配置:

    vim astra_control_center.yaml
    备注 以下步骤将提供一个标注的YAML示例。
  2. 修改或确认以下设置:

    帐户名称
    正在设置 …​ 指导 Type 示例

    accountName

    更改 accountName 字符串、表示要与Astra Control Center帐户关联的名称。只能有一个accountName。

    string

    Example

    AstraVersion
    正在设置 …​ 指导 Type 示例

    astraVersion

    要部署的Astra控制中心版本。无需对此设置执行任何操作、因为此值将预先填充。

    string

    24.02.0-69

    AstraAddress
    正在设置 …​ 指导 Type 示例

    astraAddress

    更改 astraAddress 指向要在浏览器中访问Astra控制中心的FQDN (建议)或IP地址的字符串。此地址用于定义如何在数据中心中找到Astra控制中心、并且与您在完成后从负载平衡器配置的FQDN或IP地址相同 "Astra 控制中心要求"

    注意:请勿使用 http://https:// 地址中。复制此 FQDN 以在中使用 后续步骤

    string

    astra.example.com

    AutoSupport

    您在本节中所做的选择将决定您是否参与NetApp的主动支持应用程序Digital Advisor以及数据的发送位置。需要互联网连接(端口442)、所有支持数据均会匿名化。

    正在设置 …​ 使用 …​ 指导 Type 示例

    autoSupport.enrolled

    两者之一 enrolledurl 必须选择字段

    更改 enrolled 用于将AutoSupport 连接到 false 对于不具有Internet连接或保留的站点 true 对于已连接站点。的设置 true 允许将匿名数据发送给NetApp以供支持。默认选择为 false 和表示不会向NetApp发送任何支持数据。

    布尔值

    false (此值为默认值)

    autoSupport.url

    两者之一 enrolledurl 必须选择字段

    此URL用于确定匿名数据的发送位置。

    string

    https://support.netapp.com/asupprod/post/1.0/postAsup

    email
    正在设置 …​ 指导 Type 示例

    email

    更改 email 字符串到默认的初始管理员地址。复制此电子邮件地址以在中使用 后续步骤。此电子邮件地址将用作初始帐户的用户名、用于登录到UI、并在Astra Control中收到事件通知。

    string

    admin@example.com

    firstName
    正在设置 …​ 指导 Type 示例

    firstName

    与Astra帐户关联的默认初始管理员的名字。首次登录后、此处使用的名称将显示在用户界面的标题中。

    string

    SRE

    姓氏
    正在设置 …​ 指导 Type 示例

    lastName

    与Astra帐户关联的默认初始管理员的姓氏。首次登录后、此处使用的名称将显示在用户界面的标题中。

    string

    Admin

    imageRegistry

    您在本节中的选择定义了托管Astra应用程序映像、Astra控制中心操作员和Astra控制中心Helm存储库的容器映像注册表。

    正在设置 …​ 使用 …​ 指导 Type 示例

    imageRegistry.name

    Required

    托管部署Asta Control Center所需的所有映像的Asta Control映像注册表的名称。该值将预先填充、除非配置了本地注册表、否则不需要执行任何操作。对于本地注册表、请将此现有值替换为您在中推送图像的映像注册表的名称 上一步。请勿使用 http://https:// 注册表名称。

    string

    cr.astra.netapp.io (默认)
    example.registry.com/astra (本地注册表示例)

    imageRegistry.secret

    可选

    用于通过映像注册表进行身份验证的Kubernetes密钥的名称。该值将预先填充、除非您配置了本地注册表以及在中为该注册表输入的字符串、否则不需要执行任何操作 imageRegistry.name 需要密钥。

    重要说明:如果您使用的本地注册表不需要授权、则必须将其删除 secret 行内 imageRegistry 否则安装将失败。

    string

    astra-registry-cred

    存储类
    正在设置 …​ 指导 Type 示例

    storageClass

    更改 storageClass 价值来自 ontap-gold 安装所需的另一个存储类资源。运行命令 kubectl get sc 以确定已配置的现有存储类。必须在清单文件中输入Asta Control配置程序配置的存储类之一 (astra-control-center-<version>.manifest)、并将用于Astra PV。如果未设置、则会使用默认存储类。

    注意:如果配置了默认存储类、请确保它是唯一具有默认标注的存储类。

    string

    ontap-gold

    volumeReclaimPolicy
    正在设置 …​ 指导 Type 选项

    volumeReclaimPolicy

    这将为Astra的PV设置回收策略。将此策略设置为 Retain 删除Astra后保留永久性卷。将此策略设置为 Delete 删除Astra后删除永久性卷。如果未设置此值、则会保留PV。

    string

    • Retain (这是默认值)

    • Delete

    正在载入类型
    正在设置 …​ 指导 Type 选项

    ingressType

    请使用以下入口类型之一:

    通用 (ingressType: "Generic")(默认)
    如果您正在使用另一个入口控制器或希望使用您自己的入口控制器、请使用此选项。部署Astra Control Center后、您需要配置 "入口控制器" 以使用URL公开Astra控制中心。

    重要信息:如果您要将服务网格与Astra Control Center结合使用、则必须选择 Generic 作为入口类型并设置您自己的 "入口控制器"


    * AccTraefik* (ingressType: "AccTraefik"
    如果您不希望配置入口控制器、请使用此选项。这将部署Astra控制中心 traefik 网关作为Kubernetes loadbalancer类型的服务。

    Astra控制中心使用类型为"loadbalancer"的服务 (svc/traefik )、并要求为其分配可访问的外部IP地址。如果您的环境允许使用负载平衡器、但您尚未配置一个平衡器、则可以使用MetalLB或其他外部服务负载平衡器为该服务分配外部IP地址。在内部 DNS 服务器配置中,您应将为 Astra 控制中心选择的 DNS 名称指向负载平衡的 IP 地址。

    注意:有关"load平衡 器"和传入服务类型的详细信息、请参见 "要求"

    string

    • Generic (这是默认值)

    • AccTraefik

    可扩展大小
    正在设置 …​ 指导 Type 选项

    scaleSize

    默认情况下、Astra将使用高可用性(HA) scaleSizeMedium,可在HA中部署大多数服务,并部署多个副本以实现冗余。使用 scaleSize 作为 Small`A作用 是减少所有服务的副本数量,但主要服务除外,以减少使用量。提示: `Medium 部署包含大约100个Pod (不包括瞬时工作负载)。100个Pod基于一个三主节点和三个工作节点配置)。请注意您问题描述 的环境中可能存在的每POD网络限制限制、尤其是在考虑灾难恢复方案时。

    string

    • Small

    • Medium (这是默认值)

    AstraResourcesScal
    正在设置 …​ 指导 Type 选项

    astraResourcesScaler

    AstraControlCenter资源限制的扩展选项。默认情况下、Astra控制中心会进行部署、并为Astra中的大多数组件设置了资源请求。通过这种配置、Astra控制中心软件堆栈可以在应用程序负载和扩展性增加的环境中更好地运行。但是、在使用较小的开发或测试集群的情况下、CR字段为 astraResourcesScalar 可设置为 Off。此操作将禁用资源请求、并允许在较小的集群上部署。

    string

    • Default (这是默认值)

    • Off

    其他值
    重要说明 将以下附加值添加到Astra控制中心CR中、以防止安装已知问题描述:
    additionalValues:
        keycloak-operator:
          livenessProbe:
            initialDelaySeconds: 180
          readinessProbe:
            initialDelaySeconds: 180
    CRD

    您在本节中的选择决定了Astra控制中心应如何处理CRD。

    正在设置 …​ 指导 Type 示例

    crds.externalCertManager

    如果使用外部证书管理器、请进行更改 externalCertManager to true。默认值 false 使Astra控制中心在安装期间安装自己的证书管理器CRD。CRD是集群范围的对象、安装它们可能会影响集群的其他部分。您可以使用此标志向Astra控制中心发出信号、指示这些CRD将由Astra控制中心以外的集群管理员安装和管理。

    布尔值

    False (此值为默认值)

    crds.externalTraefik

    默认情况下、Astra控制中心将安装所需的Traefik CRD。CRD是集群范围的对象、安装它们可能会影响集群的其他部分。您可以使用此标志向Astra控制中心发出信号、指示这些CRD将由Astra控制中心以外的集群管理员安装和管理。

    布尔值

    False (此值为默认值)

重要说明 在完成安装之前、请确保为您的配置选择了正确的存储类和入口类型。
示例Astra_control_cCenter.yaml
apiVersion: astra.netapp.io/v1
kind: AstraControlCenter
metadata:
  name: astra
spec:
  accountName: "Example"
  astraVersion: "ASTRA_VERSION"
  astraAddress: "astra.example.com"
  autoSupport:
    enrolled: true
  email: "[admin@example.com]"
  firstName: "SRE"
  lastName: "Admin"
  imageRegistry:
    name: "[cr.astra.netapp.io or your_registry_path]"
    secret: "astra-registry-cred"
  storageClass: "ontap-gold"
  volumeReclaimPolicy: "Retain"
  ingressType: "Generic"
  scaleSize: "Medium"
  astraResourcesScaler: "Default"
  additionalValues:
    keycloak-operator:
      livenessProbe:
        initialDelaySeconds: 180
      readinessProbe:
        initialDelaySeconds: 180
  crds:
    externalTraefik: false
    externalCertManager: false

完成 Astra 控制中心和操作员安装

  1. 如果您在上一步中尚未创建,请创建 NetApp-Accc (或自定义)命名空间:

    kubectl create ns [netapp-acc or custom namespace]
  2. 如果您正在Astra Control Center中使用服务网格、请将以下标签添加到 netapp-acc 或自定义命名空间:

    重要说明 您的入口类型 (ingressType)必须设置为 Generic 在Astra Control Center CR中、然后继续执行此命令。
    kubectl label ns [netapp-acc or custom namespace] istio-injection:enabled
  3. (建议) "启用严格的MTLS" 对于Isio service Mesh:

    kubectl apply -n istio-system -f - <<EOF
    apiVersion: security.istio.io/v1beta1
    kind: PeerAuthentication
    metadata:
      name: default
    spec:
      mtls:
        mode: STRICT
    EOF
  4. NetApp-Accc (或您的自定义)命名空间中安装 Astra Control Center :

    kubectl apply -f astra_control_center.yaml -n [netapp-acc or custom namespace]
重要说明 A作用 力控制中心操作员将自动检查环境要求。缺少 "要求" 发生原因 您的安装是否失败或Astra控制中心是否无法正常运行。请参见 下一节 检查与自动系统检查相关的警告消息。

验证系统状态

您可以使用kubectl命令验证系统状态。如果您更喜欢使用 OpenShift ,则可以使用同等的 oc 命令执行验证步骤。

步骤
  1. 验证安装过程是否未生成与验证检查相关的警告消息:

    kubectl get acc [astra or custom Astra Control Center CR name] -n [netapp-acc or custom namespace] -o yaml
    备注 A作用 力控制中心操作员日志中还会报告其他警告消息。
  2. 更正自动需求检查报告的环境中的任何问题。

    备注 您可以通过确保环境满足来更正问题 "要求" A作用 控制中心。
  3. 验证是否已成功安装所有系统组件。

    kubectl get pods -n [netapp-acc or custom namespace]

    每个 POD 的状态应为 running 。部署系统 Pod 可能需要几分钟的时间。

    展开以显示样本响应
    acc-helm-repo-5bd77c9ddd-8wxm2             1/1     Running     0               1h
    activity-5bb474dc67-8l9ss                  1/1     Running     0               1h
    activity-5bb474dc67-qbrtq                  1/1     Running     0               1h
    api-token-authentication-6wbj2             1/1     Running     0               1h
    api-token-authentication-9pgw6             1/1     Running     0               1h
    api-token-authentication-tqf6d             1/1     Running     0               1h
    asup-5495f44dbd-z4kft                      1/1     Running     0               1h
    authentication-6fdd899858-5x45s            1/1     Running     0               1h
    bucketservice-84d47487d-n9xgp              1/1     Running     0               1h
    bucketservice-84d47487d-t5jhm              1/1     Running     0               1h
    cert-manager-5dcb7648c4-hbldc              1/1     Running     0               1h
    cert-manager-5dcb7648c4-nr9qf              1/1     Running     0               1h
    cert-manager-cainjector-59b666fb75-bk2tf   1/1     Running     0               1h
    cert-manager-cainjector-59b666fb75-pfnck   1/1     Running     0               1h
    cert-manager-webhook-c6f9b6796-ngz2x       1/1     Running     0               1h
    cert-manager-webhook-c6f9b6796-rwtbn       1/1     Running     0               1h
    certificates-5f5b7b4dd-52tnj               1/1     Running     0               1h
    certificates-5f5b7b4dd-gtjbx               1/1     Running     0               1h
    certificates-expiry-check-28477260-dz5vw   0/1     Completed   0               1h
    cloud-extension-6f58cc579c-lzfmv           1/1     Running     0               1h
    cloud-extension-6f58cc579c-zw2km           1/1     Running     0               1h
    cluster-orchestrator-79dd5c8d95-qjg92      1/1     Running     0               1h
    composite-compute-85dc84579c-nz82f         1/1     Running     0               1h
    composite-compute-85dc84579c-wx2z2         1/1     Running     0               1h
    composite-volume-bff6f4f76-789nj           1/1     Running     0               1h
    composite-volume-bff6f4f76-kwnd4           1/1     Running     0               1h
    credentials-79fd64f788-m7m8f               1/1     Running     0               1h
    credentials-79fd64f788-qnc6c               1/1     Running     0               1h
    entitlement-f69cdbd77-4p2kn                1/1     Running     0               1h
    entitlement-f69cdbd77-hswm6                1/1     Running     0               1h
    features-7b9585444c-7xd7m                  1/1     Running     0               1h
    features-7b9585444c-dcqwc                  1/1     Running     0               1h
    fluent-bit-ds-crq8m                        1/1     Running     0               1h
    fluent-bit-ds-gmgq8                        1/1     Running     0               1h
    fluent-bit-ds-gzr4f                        1/1     Running     0               1h
    fluent-bit-ds-j6sf6                        1/1     Running     0               1h
    fluent-bit-ds-v4t9f                        1/1     Running     0               1h
    fluent-bit-ds-x7j59                        1/1     Running     0               1h
    graphql-server-6cc684fb46-2x8lr            1/1     Running     0               1h
    graphql-server-6cc684fb46-bshbd            1/1     Running     0               1h
    hybridauth-84599f79fd-fjc7k                1/1     Running     0               1h
    hybridauth-84599f79fd-s9pmn                1/1     Running     0               1h
    identity-95df98cb5-dvlmz                   1/1     Running     0               1h
    identity-95df98cb5-krf59                   1/1     Running     0               1h
    influxdb2-0                                1/1     Running     0               1h
    keycloak-operator-6d4d688697-cfq8b         1/1     Running     0               1h
    krakend-5d5c8f4668-7bq8g                   1/1     Running     0               1h
    krakend-5d5c8f4668-t8hbn                   1/1     Running     0               1h
    license-689cdd4595-2gsc8                   1/1     Running     0               1h
    license-689cdd4595-g6vwk                   1/1     Running     0               1h
    login-ui-57bb599956-4fwgz                  1/1     Running     0               1h
    login-ui-57bb599956-rhztb                  1/1     Running     0               1h
    loki-0                                     1/1     Running     0               1h
    metrics-facade-846999bdd4-f7jdm            1/1     Running     0               1h
    metrics-facade-846999bdd4-lnsxl            1/1     Running     0               1h
    monitoring-operator-6c9d6c4b8c-ggkrl       2/2     Running     0               1h
    nats-0                                     1/1     Running     0               1h
    nats-1                                     1/1     Running     0               1h
    nats-2                                     1/1     Running     0               1h
    natssync-server-6df7d6cc68-9v2gd           1/1     Running     0               1h
    nautilus-64b7fbdd98-bsgwb                  1/1     Running     0               1h
    nautilus-64b7fbdd98-djlhw                  1/1     Running     0               1h
    openapi-864584bccc-75nlv                   1/1     Running     0               1h
    openapi-864584bccc-zh6bx                   1/1     Running     0               1h
    polaris-consul-consul-server-0             1/1     Running     0               1h
    polaris-consul-consul-server-1             1/1     Running     0               1h
    polaris-consul-consul-server-2             1/1     Running     0               1h
    polaris-keycloak-0                         1/1     Running     2 (1h ago)      1h
    polaris-keycloak-1                         1/1     Running     0               1h
    polaris-keycloak-db-0                      1/1     Running     0               1h
    polaris-keycloak-db-1                      1/1     Running     0               1h
    polaris-keycloak-db-2                      1/1     Running     0               1h
    polaris-mongodb-0                          1/1     Running     0               1h
    polaris-mongodb-1                          1/1     Running     0               1h
    polaris-mongodb-2                          1/1     Running     0               1h
    polaris-ui-66476dcf87-f6s8j                1/1     Running     0               1h
    polaris-ui-66476dcf87-ztjk7                1/1     Running     0               1h
    polaris-vault-0                            1/1     Running     0               1h
    polaris-vault-1                            1/1     Running     0               1h
    polaris-vault-2                            1/1     Running     0               1h
    public-metrics-bfc4fc964-x4m79             1/1     Running     0               1h
    storage-backend-metrics-7dbb88d4bc-g78cj   1/1     Running     0               1h
    storage-provider-5969b5df5-hjvcm           1/1     Running     0               1h
    storage-provider-5969b5df5-r79ld           1/1     Running     0               1h
    task-service-5fc9dc8d99-4q4f4              1/1     Running     0               1h
    task-service-5fc9dc8d99-8l5zl              1/1     Running     0               1h
    task-service-task-purge-28485735-fdzkd     1/1     Running     0               12m
    telegraf-ds-2rgm4                          1/1     Running     0               1h
    telegraf-ds-4qp6r                          1/1     Running     0               1h
    telegraf-ds-77frs                          1/1     Running     0               1h
    telegraf-ds-bc725                          1/1     Running     0               1h
    telegraf-ds-cvmxf                          1/1     Running     0               1h
    telegraf-ds-tqzgj                          1/1     Running     0               1h
    telegraf-rs-5wtd8                          1/1     Running     0               1h
    telemetry-service-6747866474-5djnc         1/1     Running     0               1h
    telemetry-service-6747866474-thb7r         1/1     Running     1 (1h ago)      1h
    tenancy-5669854fb6-gzdzf                   1/1     Running     0               1h
    tenancy-5669854fb6-xvsm2                   1/1     Running     0               1h
    traefik-8f55f7d5d-4lgfw                    1/1     Running     0               1h
    traefik-8f55f7d5d-j4wt6                    1/1     Running     0               1h
    traefik-8f55f7d5d-p6gcq                    1/1     Running     0               1h
    trident-svc-7cb5bb4685-54cnq               1/1     Running     0               1h
    trident-svc-7cb5bb4685-b28xh               1/1     Running     0               1h
    vault-controller-777b9bbf88-b5bqt          1/1     Running     0               1h
    vault-controller-777b9bbf88-fdfd8          1/1     Running     0               1h
  4. (可选)观看 acc-operator 用于监控进度的日志:

    kubectl logs deploy/acc-operator-controller-manager -n netapp-acc-operator -c manager -f
    备注 accHost 集群注册是最后一项操作、如果失败、发生原因 部署不会失败。如果日志中指示的集群注册失败、您可以尝试通过重新注册 "在UI中添加集群工作流" 或 API 。
  5. 在所有Pod运行时、验证安装是否成功 (READYTrue)并获取登录Astra Control Center时要使用的初始设置密码:

    kubectl get AstraControlCenter -n [netapp-acc or custom namespace]

    响应:

    NAME    UUID                                  VERSION     ADDRESS         READY
    astra   9aa5fdae-4214-4cb7-9976-5d8b4c0ce27f  24.02.0-69   10.111.111.111  True
    重要说明 复制UUID值。密码为 Acc- ,后跟 UUID 值(Acc-UUID 或在此示例中为 Acc-9aa5fdae-4214-4cb7-9976-5d8b4c0ce27f )。

设置传入以进行负载平衡

您可以设置一个Kubernetes入口控制器、用于管理对服务的外部访问。如果您使用的是默认值、则以下过程提供了入口控制器的设置示例 ingressType: "Generic" 在Astra Control Center自定义资源中 (astra_control_center.yaml)。如果指定、则不需要使用此操作步骤 ingressType: "AccTraefik" 在Astra Control Center自定义资源中 (astra_control_center.yaml)。

部署Astra Control Center后、您需要配置传入控制器、以便使用URL公开Astra Control Center。

设置步骤因所使用的入口控制器类型而异。Astra控制中心支持多种传入控制器类型。这些设置过程提供了一些常见传入控制器类型的示例步骤。

开始之前

Istio入口的步骤

  1. 配置Istio入口。

    备注 此操作步骤 假定使用"默认"配置文件部署Istio。
  2. 为传入网关收集或创建所需的证书和专用密钥文件。

    您可以使用CA签名或自签名证书。公用名必须为Astra地址(FQDN)。

    命令示例:

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt
  3. 创建密钥 tls secret name 类型 kubernetes.io/tls 中的TLS专用密钥和证书 istio-system namespace 如TLS机密中所述。

    命令示例:

    kubectl create secret tls [tls secret name] --key="tls.key" --cert="tls.crt" -n istio-system
    提示 密钥名称应与`istio-Infile.yaml`文件中提供的`spec.tls.secretName`匹配。
  4. 在中部署入站资源 netapp-acc (或自定义命名的)命名空间 (istio-Ingress.yaml 在此示例中使用):

    apiVersion: networking.k8s.io/v1
    kind: IngressClass
    metadata:
      name: istio
    spec:
      controller: istio.io/ingress-controller
    ---
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: ingress
      namespace: [netapp-acc or custom namespace]
    spec:
      ingressClassName: istio
      tls:
      - hosts:
        - <ACC address>
        secretName: [tls secret name]
      rules:
      - host: [ACC address]
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: traefik
                port:
                  number: 80
  5. 应用更改:

    kubectl apply -f istio-Ingress.yaml
  6. 检查入口状态:

    kubectl get ingress -n [netapp-acc or custom namespace]

    响应:

    NAME    CLASS HOSTS             ADDRESS         PORTS   AGE
    ingress istio astra.example.com 172.16.103.248  80, 443 1h
  7. 完成Astra控制中心安装

nginx 入口控制器的步骤

  1. 创建类型的密钥 kubernetes.io/tls 中的TLS专用密钥和证书 netapp-acc (或自定义命名的)命名空间、如中所述 "TLS 密钥"

  2. 在中部署传入资源 netapp-acc (或自定义命名的)命名空间 (nginx-Ingress.yaml 在此示例中使用):

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: netapp-acc-ingress
      namespace: [netapp-acc or custom namespace]
    spec:
      ingressClassName: [class name for nginx controller]
      tls:
      - hosts:
        - <ACC address>
        secretName: [tls secret name]
      rules:
      - host: <ACC address>
        http:
          paths:
            - path:
              backend:
                service:
                  name: traefik
                  port:
                    number: 80
              pathType: ImplementationSpecific
  3. 应用更改:

    kubectl apply -f nginx-Ingress.yaml
警告 NetApp建议将nginx控制器安装为部署、而不是安装 daemonSet

OpenShift 入口控制器的步骤

  1. 获取证书并获取密钥,证书和 CA 文件,以供 OpenShift 路由使用。

  2. 创建 OpenShift 路由:

    oc create route edge --service=traefik --port=web -n [netapp-acc or custom namespace] --insecure-policy=Redirect --hostname=<ACC address> --cert=cert.pem --key=key.pem

登录到 Astra 控制中心 UI

安装Astra Control Center后、您将更改默认管理员的密码、并登录到Astra Control Center UI信息板。

步骤
  1. 在浏览器中、输入FQDN (包括 https:// 前缀) astraAddress 在中 astra_control_center.yaml CR时间 您安装了 Astra 控制中心

  2. 如果出现提示、请接受自签名证书。

    备注 您可以在登录后创建自定义证书。
  3. 在Astra Control Center登录页面上、输入您用于的值 email 在中 astra_control_center.yaml CR时间 您安装了 Astra 控制中心、后跟初始设置密码 (ACC-[UUID])。

    备注 如果您输入的密码三次不正确,管理员帐户将锁定 15 分钟。
  4. 选择 * 登录 * 。

  5. 根据提示更改密码。

    备注 如果这是您第一次登录、但您忘记了密码、并且尚未创建任何其他管理用户帐户、请联系 "NetApp 支持" 以获得密码恢复帮助。
  6. (可选)删除现有自签名 TLS 证书并将其替换为 "由证书颁发机构( CA )签名的自定义 TLS 证书"

对安装进行故障排除

如果任何服务处于 Error 状态,您可以检查日志。查找 400 到 500 范围内的 API 响应代码。这些信息表示发生故障的位置。

选项
  • 要检查 Astra 控制中心操作员日志,请输入以下内容:

    kubectl logs deploy/acc-operator-controller-manager -n netapp-acc-operator -c manager -f
  • 要检查Asta Control Center CR的输出:

    kubectl get acc -n [netapp-acc or custom namespace] -o yaml

其他安装过程

  • 使用Red Hat OpenShift OperatorHub进行安装:使用此方法 "备用操作步骤" 使用OperatorHub在OpenShift上安装A作用 力控制中心。

  • 使用Cloud Volumes ONTAP 后端在公有 云中安装:使用 "这些过程" 在带有Cloud Volumes ONTAP 存储后端的Amazon Web Services (AWS)、Google云平台(GCP)或Microsoft Azure中安装Astra控制中心。