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

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

要安装 Astra 控制中心,请从 NetApp 支持站点下载安装包,并执行以下步骤在您的环境中安装 Astra 控制中心操作员和 Astra 控制中心。您可以使用此操作步骤在互联网连接或通风环境中安装 Astra 控制中心。

对于 Red Hat OpenShift 环境,您还可以使用 "备用操作步骤" 使用 OpenShift OperatorHub 安装 Astra Control Center 。

您需要什么? #8217 ;将需要什么
  • "开始安装之前,请为 Astra Control Center 部署准备您的环境"

  • 确保所有集群操作员均处于运行状况良好且可用。

    OpenShift 示例:

    oc get clusteroperators
  • 确保所有 API 服务均处于运行状况良好且可用:

    OpenShift 示例:

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

Astra 控制中心安装过程将执行以下操作:

  • 将 Astra 组件安装到 NetApp-Accc (或自定义命名)命名空间中。

  • 创建默认帐户。

  • 为此 Astra 控制中心实例建立默认管理用户电子邮件地址和默认一次性密码 Acc-<UID_of_installation> 。系统会为此用户分配所有者角色,首次登录到 UI 时需要此用户。

  • 帮助您确定所有 Astra 控制中心 Pod 是否正在运行。

  • 安装 Astra UI 。

重要 (仅限适用场景 Astra数据存储早期访问计划(EAP)版本)如果要使用控制中心管理Astra数据存储并启用VMware工作流、 仅在`pcloud`命名空间上部署Astra控制中心、而不是在`NetApp-Accc`命名空间或本操作步骤 步骤中所述的自定义命名空间上部署。
重要 请勿在整个安装过程中执行以下命令以避免删除所有 Astra 控制中心 Pod : kubectl delete -f Astra_control_center_operator_deploy.yaml
注 如果您使用的是 Red Hat 的 Podman 而不是 Docker 引擎,则可以使用 Podman 命令代替 Docker 命令。

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

下载 Astra Control Center 捆绑包

  1. 从下载 Astra 控制中心捆绑包(Astra-control-center-[version].tar.gz"NetApp 支持站点"

  2. 从下载 Astra 控制中心证书和密钥的 zip "NetApp 支持站点"

  3. (可选)使用以下命令验证捆绑包的签名:

    openssl dgst -sha256 -verify astra-control-center[version].pub -signature <astra-control-center[version].sig astra-control-center[version].tar.gz

打开软件包的包装并更改目录

  1. 提取映像:

    tar -vxzf astra-control-center-[version].tar.gz
  2. 更改为 Astra 目录。

    cd astra-control-center-[version]

将映像添加到本地注册表

  1. 将 Astra Control Center 映像目录中的文件添加到本地注册表中。

    注 有关自动加载映像的信息,请参见下面的示例脚本。
    1. 登录到注册表:

      Docker :

      docker login [your_registry_path]

      播客:

      podman login [your_registry_path]
    2. 使用适当的脚本加载映像,标记映像,并将这些映像推送到本地注册表:

      Docker :

      export REGISTRY=[Docker_registry_path]
      for astraImageFile in $(ls images/*.tar) ; do
        # Load to local cache. And store the name of the loaded image trimming the 'Loaded images: '
        astraImage=$(docker load --input ${astraImageFile} | sed 's/Loaded image: //')
        astraImage=$(echo ${astraImage} | sed 's!localhost/!!')
        # Tag with local image repo.
        docker tag ${astraImage} ${REGISTRY}/${astraImage}
        # Push to the local repo.
        docker push ${REGISTRY}/${astraImage}
      done

      播客:

    export REGISTRY=[Registry_path]
    for astraImageFile in $(ls images/*.tar) ; do
      # Load to local cache. And store the name of the loaded image trimming the 'Loaded images: '
      astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image(s): //')
      astraImage=$(echo ${astraImage} | sed 's!localhost/!!')
      # Tag with local image repo.
      podman tag ${astraImage} ${REGISTRY}/${astraImage}
      # Push to the local repo.
      podman push ${REGISTRY}/${astraImage}
    done

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

  1. 如果您使用的注册表需要身份验证,则需要执行以下操作:

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

      kubectl create ns netapp-acc-operator

      响应:

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

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

      响应示例:

      secret/astra-registry-cred created
    3. 创建 NetApp-Accc (或自定义命名)命名空间。

      kubectl create ns [netapp-acc or custom namespace]

      响应示例:

      namespace/netapp-acc created
    4. NetApp-Accc (或自定义命名)命名空间创建一个密钥。添加 Docker 信息并运行以下命令:

      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]

      响应

    secret/astra-registry-cred created
    1. (可选)如果您希望集群在安装后由 Astra 控制中心自动管理,请确保在您要使用此命令部署到的 Astra 控制中心命名空间中提供 kubeconfig 作为机密:

      kubectl create secret generic [acc-kubeconfig-cred or custom secret name] --from-file=<path-to-your-kubeconfig> -n [netapp-acc or custom namespace]

安装 Astra 控制中心操作员

  1. 编辑 Astra 控制中心操作员部署 YAML (Astra_control_center_operator_deploy.yaml )以参考您的本地注册表和机密。

    vim astra_control_center_operator_deploy.yaml
    1. 如果您使用的注册表需要身份验证,请将默认行 imagePullSecs : [] 替换为以下内容:

      imagePullSecrets:
      - name: <name_of_secret_with_creds_to_local_registry>
    2. Kube-RBAC 代理 映像的 ` [yor_registry_path]` 更改为将映像推入的注册表路径 上一步

    3. Acc-operator-controller-manager 映像的 ` [yor_registry_path]` 更改为在中推送映像的注册表路径 上一步

    4. (对于使用 Astra 数据存储预览版的安装)请参见有关的此已知问题描述 "存储类配置程序以及需要对 YAML 进行的其他更改"

      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
        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: [your_registry_path]/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
              command:
              - /manager
              env:
              - name: ACCOP_LOG_LEVEL
                value: "2"
              image: [your_registry_path]/acc-operator:[version x.y.z]
              imagePullPolicy: IfNotPresent
            imagePullSecrets: []
  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

配置 Astra 控制中心

  1. 编辑 Astra 控制中心自定义资源( CR )文件(Astra_control_center_min.yaml )以进行帐户, AutoSupport ,注册表和其他必要配置:

    注 如果您的环境需要其他自定义设置,您可以使用 Astra_control_center.yaml 作为替代 CR 。Astra_control_center_min.yaml 是默认 CR ,适用于大多数安装。
    vim astra_control_center_min.yaml
    注 首次部署 Astra 控制中心后,无法更改 CR 配置的属性。
    重要 如果您使用的注册表不需要授权,则必须删除 imageRegistry 中的 secret 行,否则安装将失败。
    1. 将 ` [yor_registry_path]` 更改为上一步中用于推送映像的注册表路径。

    2. accountName 字符串更改为要与帐户关联的名称。

    3. astraAddress 字符串更改为要在浏览器中使用的 FQDN 以访问 Astra 。请勿在此地址中使用 http : //https : // 。复制此 FQDN 以在中使用 后续步骤

    4. email 字符串更改为默认的初始管理员地址。复制此电子邮件地址以在中使用 后续步骤

    5. 将 AutoSupport 的 已注册 更改为 false 对于无 Internet 连接的站点,或者将已连接站点的 true 保留。

    6. (可选)添加与帐户关联的用户的名字 firstName 和姓氏 lastName 。您可以在用户界面中立即或稍后执行此步骤。

    7. (可选)如果您的安装需要,请将 storageClass 值更改为另一个 Trident storageClass 资源。

    8. (可选)如果您希望集群在安装后由 Astra 控制中心自动管理,并且您已经这样了 已为此集群创建包含 kubeconfig 的密钥,通过在此 YAML 文件中添加一个名为 astraKubeConfigSecret 的新字段来提供此机密的名称: "Acc-kubeconfig-cred 或自定义机密名称 "

    9. 完成以下步骤之一:

      • * 其他传入控制器( ingressType : Generic ) * :这是 Astra 控制中心的默认操作。部署 Astra 控制中心后,您需要配置入口控制器,以便使用 URL 公开 Astra 控制中心。

        默认的 Astra 控制中心安装会将其网关( sservice/traefik )设置为类型 ClusterIP 。此默认安装要求您另外设置一个 Kubernetes IngressController/Ingress ,以便向其路由流量。如果要使用入口,请参见 "设置传入以进行负载平衡"

      • * 服务负载平衡器( ingressType : AccTraefik ) * :如果您不想安装 IngressController 或创建 Ingress 资源,请将 ingressType 设置为 AccTraefik

        这会将 Astra 控制中心 traefik 网关部署为 Kubernetes 负载平衡器类型的服务。

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

      注 有关 "loadbalancer" 服务类型和入口的详细信息,请参见 "要求"
    apiVersion: astra.netapp.io/v1
    kind: AstraControlCenter
    metadata:
      name: astra
    spec:
      accountName: "Example"
      astraVersion: "ASTRA_VERSION"
      astraAddress: "astra.example.com"
      astraKubeConfigSecret: "acc-kubeconfig-cred or custom secret name"
      ingressType: "Generic"
      autoSupport:
        enrolled: true
      email: "[admin@example.com]"
      firstName: "SRE"
      lastName: "Admin"
      imageRegistry:
        name: "[your_registry_path]"
        secret: "astra-registry-cred"
      storageClass: "ontap-gold"

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

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

    kubectl create ns [netapp-acc or custom namespace]

    响应示例:

    namespace/netapp-acc created
  2. NetApp-Accc (或您的自定义)命名空间中安装 Astra Control Center :

    kubectl apply -f astra_control_center_min.yaml -n [netapp-acc or custom namespace]

    响应示例:

    astracontrolcenter.astra.netapp.io/astra created

验证系统状态

注 如果您更喜欢使用 OpenShift ,则可以使用同等的 oc 命令执行验证步骤。
  1. 验证是否已成功安装所有系统组件。

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

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

    响应示例:

    NAME                                       READY   STATUS    RESTARTS   AGE
    acc-helm-repo-5f75c5f564-bzqmt             1/1     Running   0          11m
    activity-6b8f7cccb9-mlrn4                  1/1     Running   0          9m2s
    api-token-authentication-6hznt             1/1     Running   0          8m50s
    api-token-authentication-qpfgb             1/1     Running   0          8m50s
    api-token-authentication-sqnb7             1/1     Running   0          8m50s
    asup-5578bbdd57-dxkbp                      1/1     Running   0          9m3s
    authentication-56bff4f95d-mspmq            1/1     Running   0          7m31s
    bucketservice-6f7968b95d-9rrrl             1/1     Running   0          8m36s
    cert-manager-5f6cf4bc4b-82khn              1/1     Running   0          6m19s
    cert-manager-cainjector-76cf976458-sdrbc   1/1     Running   0          6m19s
    cert-manager-webhook-5b7896bfd8-2n45j      1/1     Running   0          6m19s
    cloud-extension-749d9f684c-8bdhq           1/1     Running   0          9m6s
    cloud-insights-service-7d58687d9-h5tzw     1/1     Running   2          8m56s
    composite-compute-968c79cb5-nv7l4          1/1     Running   0          9m11s
    composite-volume-7687569985-jg9gg          1/1     Running   0          8m33s
    credentials-5c9b75f4d6-nx9cz               1/1     Running   0          8m42s
    entitlement-6c96fd8b78-zt7f8               1/1     Running   0          8m28s
    features-5f7bfc9f68-gsjnl                  1/1     Running   0          8m57s
    fluent-bit-ds-h88p7                        1/1     Running   0          7m22s
    fluent-bit-ds-krhnj                        1/1     Running   0          7m23s
    fluent-bit-ds-l5bjj                        1/1     Running   0          7m22s
    fluent-bit-ds-lrclb                        1/1     Running   0          7m23s
    fluent-bit-ds-s5t4n                        1/1     Running   0          7m23s
    fluent-bit-ds-zpr6v                        1/1     Running   0          7m22s
    graphql-server-5f5976f4bd-vbb4z            1/1     Running   0          7m13s
    identity-56f78b8f9f-8h9p9                  1/1     Running   0          8m29s
    influxdb2-0                                1/1     Running   0          11m
    krakend-6f8d995b4d-5khkl                   1/1     Running   0          7m7s
    license-5b5db87c97-jmxzc                   1/1     Running   0          9m
    login-ui-57b57c74b8-6xtv7                  1/1     Running   0          7m10s
    loki-0                                     1/1     Running   0          11m
    monitoring-operator-9dbc9c76d-8znck        2/2     Running   0          7m33s
    nats-0                                     1/1     Running   0          11m
    nats-1                                     1/1     Running   0          10m
    nats-2                                     1/1     Running   0          10m
    nautilus-6b9d88bc86-h8kfb                  1/1     Running   0          8m6s
    nautilus-6b9d88bc86-vn68r                  1/1     Running   0          8m35s
    openapi-b87d77dd8-5dz9h                    1/1     Running   0          9m7s
    polaris-consul-consul-5ljfb                1/1     Running   0          11m
    polaris-consul-consul-s5d5z                1/1     Running   0          11m
    polaris-consul-consul-server-0             1/1     Running   0          11m
    polaris-consul-consul-server-1             1/1     Running   0          11m
    polaris-consul-consul-server-2             1/1     Running   0          11m
    polaris-consul-consul-twmpq                1/1     Running   0          11m
    polaris-mongodb-0                          2/2     Running   0          11m
    polaris-mongodb-1                          2/2     Running   0          10m
    polaris-mongodb-2                          2/2     Running   0          10m
    polaris-ui-84dc87847f-zrg8w                1/1     Running   0          7m12s
    polaris-vault-0                            1/1     Running   0          11m
    polaris-vault-1                            1/1     Running   0          11m
    polaris-vault-2                            1/1     Running   0          11m
    public-metrics-657698b66f-67pgt            1/1     Running   0          8m47s
    storage-backend-metrics-6848b9fd87-w7x8r   1/1     Running   0          8m39s
    storage-provider-5ff5868cd5-r9hj7          1/1     Running   0          8m45s
    telegraf-ds-dw4hg                          1/1     Running   0          7m23s
    telegraf-ds-k92gn                          1/1     Running   0          7m23s
    telegraf-ds-mmxjl                          1/1     Running   0          7m23s
    telegraf-ds-nhs8s                          1/1     Running   0          7m23s
    telegraf-ds-rj7lw                          1/1     Running   0          7m23s
    telegraf-ds-tqrkb                          1/1     Running   0          7m23s
    telegraf-rs-9mwgj                          1/1     Running   0          7m23s
    telemetry-service-56c49d689b-ffrzx         1/1     Running   0          8m42s
    tenancy-767c77fb9d-g9ctv                   1/1     Running   0          8m52s
    traefik-5857d87f85-7pmx8                   1/1     Running   0          6m49s
    traefik-5857d87f85-cpxgv                   1/1     Running   0          5m34s
    traefik-5857d87f85-lvmlb                   1/1     Running   0          4m33s
    traefik-5857d87f85-t2xlk                   1/1     Running   0          4m33s
    traefik-5857d87f85-v9wpf                   1/1     Running   0          7m3s
    trident-svc-595f84dd78-zb8l6               1/1     Running   0          8m54s
    vault-controller-86c94fbf4f-krttq          1/1     Running   0          9m24s
  2. (可选)为确保安装完成,您可以使用以下命令查看 Acc-operator 日志。

    kubectl logs deploy/acc-operator-controller-manager -n netapp-acc-operator -c manager -f
    注 AccHost 集群注册是最后一项操作,如果失败,发生原因 部署不会失败。如果日志中指示集群注册失败,您可以通过添加集群工作流再次尝试注册 "在 UI 中" 或 API 。
  3. 当所有 Pod 运行时,通过检索 Astra 控制中心操作员安装的 AstraControlCenter 实例来验证安装是否成功。

    kubectl get acc -o yaml -n [netapp-acc or custom namespace]
  4. 在 YAML 中,` 响应中的 status.deploymentState 字段以查看 `Deploy 值。如果部署失败,则会显示一条错误消息。

  5. 要获取登录到 Astra 控制中心时要使用的一次性密码,请复制 status.uuid 值。密码为 Acc- ,后跟 UUID 值(Acc-UUID 或在此示例中为 Acc-9aa5fdae-4214-4cb7-9976-5d8b4c0ce27f )。

示例 1. YAML 详细信息示例
name: astra
   namespace: netapp-acc
   resourceVersion: "104424560"
   selfLink: /apis/astra.netapp.io/v1/namespaces/netapp-acc/astracontrolcenters/astra
   uid: 9aa5fdae-4214-4cb7-9976-5d8b4c0ce27f
 spec:
   accountName: Example
   astraAddress: astra.example.com
   astraVersion: 21.12.60
   autoSupport:
     enrolled: true
     url: https://support.netapp.com/asupprod/post/1.0/postAsup
   crds: {}
   email: admin@example.com
   firstName: SRE
   imageRegistry:
     name: registry_name/astra
     secret: astra-registry-cred
   lastName: Admin
 status:
   accConditionHistory:
     items:
     - astraVersion: 21.12.60
       condition:
         lastTransitionTime: "2021-11-23T02:23:59Z"
         message: Deploying is currently in progress.
         reason: InProgress
         status: "False"
         type: Ready
       generation: 2
       observedSpec:
         accountName: Example
         astraAddress: astra.example.com
         astraVersion: 21.12.60
         autoSupport:
           enrolled: true
           url: https://support.netapp.com/asupprod/post/1.0/postAsup
         crds: {}
         email: admin@example.com
         firstName: SRE
         imageRegistry:
           name: registry_name/astra
           secret: astra-registry-cred
         lastName: Admin
       timestamp: "2021-11-23T02:23:59Z"
     - astraVersion: 21.12.60
       condition:
         lastTransitionTime: "2021-11-23T02:23:59Z"
         message: Deploying is currently in progress.
         reason: InProgress
         status: "True"
         type: Deploying
       generation: 2
       observedSpec:
         accountName: Example
         astraAddress: astra.example.com
         astraVersion: 21.12.60
         autoSupport:
           enrolled: true
           url: https://support.netapp.com/asupprod/post/1.0/postAsup
         crds: {}
         email: admin@example.com
         firstName: SRE
         imageRegistry:
           name: registry_name/astra
           secret: astra-registry-cred
         lastName: Admin
       timestamp: "2021-11-23T02:23:59Z"
     - astraVersion: 21.12.60
       condition:
         lastTransitionTime: "2021-11-23T02:29:41Z"
         message: Post Install was successful
         observedGeneration: 2
         reason: Complete
         status: "True"
         type: PostInstallComplete
       generation: 2
       observedSpec:
         accountName: Example
         astraAddress: astra.example.com
         astraVersion: 21.12.60
         autoSupport:
           enrolled: true
           url: https://support.netapp.com/asupprod/post/1.0/postAsup
         crds: {}
         email: admin@example.com
         firstName: SRE
         imageRegistry:
           name: registry_name/astra
           secret: astra-registry-cred
         lastName: Admin
       timestamp: "2021-11-23T02:29:41Z"
     - astraVersion: 21.12.60
       condition:
         lastTransitionTime: "2021-11-23T02:29:41Z"
         message: Deploying succeeded.
         reason: Complete
         status: "False"
         type: Deploying
       generation: 2
       observedGeneration: 2
       observedSpec:
         accountName: Example
         astraAddress: astra.example.com
         astraVersion: 21.12.60
         autoSupport:
           enrolled: true
           url: https://support.netapp.com/asupprod/post/1.0/postAsup
         crds: {}
         email: admin@example.com
         firstName: SRE
         imageRegistry:
           name: registry_name/astra
           secret: astra-registry-cred
         lastName: Admin
       observedVersion: 21.12.60
       timestamp: "2021-11-23T02:29:41Z"
     - astraVersion: 21.12.60
       condition:
         lastTransitionTime: "2021-11-23T02:29:41Z"
         message: Astra is deployed
         reason: Complete
         status: "True"
         type: Deployed
       generation: 2
       observedGeneration: 2
       observedSpec:
         accountName: Example
         astraAddress: astra.example.com
         astraVersion: 21.12.60
         autoSupport:
           enrolled: true
           url: https://support.netapp.com/asupprod/post/1.0/postAsup
         crds: {}
         email: admin@example.com
         firstName: SRE
         imageRegistry:
           name: registry_name/astra
           secret: astra-registry-cred
         lastName: Admin
       observedVersion: 21.12.60
       timestamp: "2021-11-23T02:29:41Z"
     - astraVersion: 21.12.60
       condition:
         lastTransitionTime: "2021-11-23T02:29:41Z"
         message: Astra is deployed
         reason: Complete
         status: "True"
         type: Ready
       generation: 2
       observedGeneration: 2
       observedSpec:
         accountName: Example
         astraAddress: astra.example.com
         astraVersion: 21.12.60
         autoSupport:
           enrolled: true
           url: https://support.netapp.com/asupprod/post/1.0/postAsup
         crds: {}
         email: admin@example.com
         firstName: SRE
         imageRegistry:
           name: registry_name/astra
           secret: astra-registry-cred
         lastName: Admin
       observedVersion: 21.12.60
       timestamp: "2021-11-23T02:29:41Z"
   certManager: deploy
   cluster:
     type: OCP
     vendorVersion: 4.7.5
     version: v1.20.0+bafe72f
   conditions:
   - lastTransitionTime: "2021-12-08T16:19:55Z"
     message: Astra is deployed
     reason: Complete
     status: "True"
     type: Ready
   - lastTransitionTime: "2021-12-08T16:19:55Z"
     message: Deploying succeeded.
     reason: Complete
     status: "False"
     type: Deploying
   - lastTransitionTime: "2021-12-08T16:19:53Z"
     message: Post Install was successful
     observedGeneration: 2
     reason: Complete
     status: "True"
     type: PostInstallComplete
   - lastTransitionTime: "2021-12-08T16:19:55Z"
     message: Astra is deployed
     reason: Complete
     status: "True"
     type: Deployed
   deploymentState: Deployed
   observedGeneration: 2
   observedSpec:
     accountName: Example
     astraAddress: astra.example.com
     astraVersion: 21.12.60
     autoSupport:
       enrolled: true
       url: https://support.netapp.com/asupprod/post/1.0/postAsup
     crds: {}
     email: admin@example.com
     firstName: SRE
     imageRegistry:
       name: registry_name/astra
       secret: astra-registry-cred
     lastName: Admin
   observedVersion: 21.12.60
   postInstall: Complete
   uuid: 9aa5fdae-4214-4cb7-9976-5d8b4c0ce27f
kind: List
metadata:
 resourceVersion: ""
 selfLink: ""

设置传入以进行负载平衡

您可以设置 Kubernetes 入口控制器,用于管理对服务的外部访问,例如集群中的负载平衡。

此操作步骤 介绍了如何设置入口控制器(ingressType : Generic )。这是 Astra 控制中心的默认操作。部署 Astra 控制中心后,您需要配置入口控制器,以便使用 URL 公开 Astra 控制中心。

注 如果您不想设置入口控制器,可以设置 ingressType : AccTraefik ) 。Astra 控制中心使用类型为 "loadbalancer" 的服务(在 Astra 控制中心命名空间中为 svC/traefik ),并要求为其分配可访问的外部 IP 地址。如果您的环境允许使用负载平衡器,但您尚未配置一个平衡器,则可以使用 MetalLB 或其他外部服务负载平衡器为该服务分配外部 IP 地址。在内部 DNS 服务器配置中,您应将为 Astra 控制中心选择的 DNS 名称指向负载平衡的 IP 地址。有关 "loadbalancer" 服务类型和入口的详细信息,请参见 "要求"

根据您使用的入口控制器类型,步骤会有所不同:

  • nginx 入口控制器

  • OpenShift 入口控制器

您需要什么? #8217 ;将需要什么
  • 所需 "入口控制器" 应已部署。

  • "入口类" 应已创建与入口控制器对应的。

  • 您使用的是介于 v1.19 和 v1.22 之间的 Kubernetes 版本,包括 v1.19 和 v1.22 。

nginx 入口控制器的步骤
  1. 创建类型的密钥 “Kubernetes 。 IO/TLS” 用于 NetApp-Accc (或自定义命名)命名空间中的 TLS 专用密钥和证书,如中所述 "TLS 密钥"

  2. 使用 vipeta1 (在 Kubernetes 版本低于或 1.22 的情况下已弃用)或 v1 资源类型(对于已弃用或新模式)在 NetApp-Accc (或自定义命名)命名空间中部署入站资源:

    1. 对于 v1bea1 已弃用的架构,请遵循以下示例:

      apiVersion: extensions/v1beta1
      kind: Ingress
      metadata:
        name: ingress-acc
        namespace: [netapp-acc or custom namespace]
        annotations:
          kubernetes.io/ingress.class: [class name for nginx controller]
      spec:
        tls:
        - hosts:
          - <ACC address>
          secretName: [tls secret name]
        rules:
        - host: [ACC address]
          http:
            paths:
            - backend:
              serviceName: traefik
              servicePort: 80
              pathType: ImplementationSpecific
    2. 对于 v1 新架构,请遵循以下示例:

      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 addess>
          http:
            paths:
              - path:
                backend:
                  service:
                    name: traefik
                    port:
                      number: 80
                pathType: ImplementationSpecific
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 控制中心后,您将更改默认管理员的密码并登录到 Astra 控制中心 UI 信息板。

步骤
  1. 在浏览器中,输入在 Astra_control_center_min.YAML CR when 的 AstraAddress 中使用的 FQDN 您安装了 Astra 控制中心

  2. 出现提示时接受自签名证书。

    注 您可以在登录后创建自定义证书。
  3. 在 Astra Control Center 登录页面上,在 Astra_control_center_min.yaml CR when 中输入您用于 email 的值 您安装了 Astra 控制中心,后跟一次性密码(Acc-UUID )。

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

  5. 根据提示更改密码。

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

对安装进行故障排除

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

步骤
  1. 要检查 Astra 控制中心操作员日志,请输入以下内容:

    kubectl logs --follow -n netapp-acc-operator $(kubectl get pods -n netapp-acc-operator -o name)  -c manager

下一步行动

执行以完成部署 "设置任务"