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

升级 Astra 控制中心

贡献者

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

这些说明介绍了Astra Control Center从第二个最新版本升级到此最新版本的过程。您不能直接从比当前版本落后两个或更多版本的版本升级。如果您安装的Astra Control Center版本比最新版本晚许多版本、您可能需要执行链式升级到更高版本、直到您安装的Astra Control Center仅比最新版本晚一个版本。有关已发布版本的完整列表、请参见 "发行说明"

开始之前

在升级之前、请确保您的环境仍满足 "Asta Control Center部署的最低要求"。您的环境应具有以下内容:

  • 已启用 "Asta Control配置程序" A作用 于运行Astra三端存储

    1. 确定您正在运行的Astra三项目标版本:

      kubectl get tridentversion -n trident
      备注 如果您运行的是Asta三端凹凸版23.01或更早版本、请使用这些版本 "说明" 在升级到Asta Control配置程序之前、升级到Asta三端到最新版本。如果您的Astra三端存储在版本24.02的四个版本窗口中、则可以直接升级到Astra Control置备程序24.02。例如、您可以直接从Asta三端23.04升级到Asta Control配置程序24.02。
    2. 确认Asta Control配置程序已配置 "enabled"。Asta Control配置程序不能用于23.10之前的Asta Control Center版本。升级Astra Control配置程序、使其与要升级的Astra Control Center版本相同、以访问最新功能。

  • 支持的Kubernetes分发

    确定您正在运行的Kubenetes版本:

    kubectl get nodes -o wide
  • 集群资源充足

    确定可用的集群资源:

    kubectl describe node <node name>
  • 默认存储类

    确定默认存储类:

    kubectl get storageclass
  • 运行状况良好且可用的API服务

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

    kubectl get apiservices
  • (仅限本地注册表)可用于推送和上传Astra Control Center映像的本地注册表

  • (仅限OpenShift)运行状况良好且可用的集群操作符

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

    kubectl get clusteroperators

您还应考虑以下事项:

提示 如果计划,备份和快照未运行,请在维护窗口中执行升级。
  • 访问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 Center安装期间安装了Isio服务网格、Astra Control Center的此升级将包括Isio服务网格。如果您还没有服务网格、则只能在期间安装一个 "初始部署" Astra控制中心。

关于此任务

Astra 控制中心升级过程将指导您完成以下高级步骤:

备注 在开始升级之前、请从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 kubect命令行插件将映像推送到本地Docker存储库。

  1. 确定是否已安装此插件:

    kubectl astra
  2. 执行以下操作之一:

    • 如果已安装此插件、则此命令应返回kubecTn插件帮助、您可以删除现有版本的kubecT1-Asta: delete /usr/local/bin/kubectl-astra

    • 如果此命令返回错误、则表示未安装此插件、您可以继续执行下一步以安装它。

  3. 安装插件:

    1. 列出可用的NetApp Astra kubectl插件二进制文件、并记下操作系统和CPU架构所需的文件名称:

      备注 kubectl插件库是tar包的一部分、并会解压缩到文件夹中 kubectl-astra
    ls kubectl-astra/
    1. 将正确的二进制文件移动到当前路径并重命名为 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

安装更新后的 Astra 控制中心操作员

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

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

      vim astra_control_center_operator_deploy.yaml
      备注 以下步骤将提供一个标注的YAML示例。
    2. 如果您使用的注册表需要身份验证、请替换或编辑的默认行 imagePullSecrets: [] 使用以下命令:

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

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

    5. 将以下值添加到 env 部分:

      - name: ACCOP_HELM_UPGRADETIMEOUT
        value: 300m
    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_UPGRADETIMEOUT
              value: 300m
            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 unchanged
    customresourcedefinition.apiextensions.k8s.io/astracontrolcenters.astra.netapp.io configured
    role.rbac.authorization.k8s.io/acc-operator-leader-election-role unchanged
    clusterrole.rbac.authorization.k8s.io/acc-operator-manager-role configured
    clusterrole.rbac.authorization.k8s.io/acc-operator-metrics-reader unchanged
    clusterrole.rbac.authorization.k8s.io/acc-operator-proxy-role unchanged
    rolebinding.rbac.authorization.k8s.io/acc-operator-leader-election-rolebinding unchanged
    clusterrolebinding.rbac.authorization.k8s.io/acc-operator-manager-rolebinding configured
    clusterrolebinding.rbac.authorization.k8s.io/acc-operator-proxy-rolebinding unchanged
    configmap/acc-operator-manager-config unchanged
    service/acc-operator-controller-manager-metrics-service unchanged
    deployment.apps/acc-operator-controller-manager configured
  3. 验证Pod是否正在运行:

    kubectl get pods -n netapp-acc-operator

升级 Astra 控制中心

  1. 编辑Astra Control Center自定义资源(CR):

    kubectl edit AstraControlCenter -n [netapp-acc or custom namespace]
    备注 以下步骤将提供一个标注的YAML示例。
  2. 更改Astra版本号 (astraVersion 在中 spec) 23.10.0 to 24.02.0

    备注 您不能直接从比当前版本落后两个或更多版本的版本升级。有关已发布版本的完整列表、请参见 "发行说明"
    spec:
      accountName: "Example"
      astraVersion: "[Version number]"
  3. 更改图像注册表:

    • (仅限本地注册表)如果使用的是本地注册表、请验证映像注册表路径是否与中将映像推送到的注册表路径匹配 上一步。更新 imageRegistry 在中 spec 如果本地注册表自上次安装以来发生了更改。

    • (Astra Control图像注册表)使用Astra Control图像注册表 (cr.astra.netapp.io)您曾下载更新的Astra Control捆绑包。

        imageRegistry:
          name: "[cr.astra.netapp.io or your_registry_path]"
  4. 将以下内容添加到 crds 中的配置 spec

    crds:
      shouldUpgrade: true
  5. 在中添加以下行 additionalValues 在中 spec 在Astra控制中心CR中:

    additionalValues:
        nautilus:
          startupProbe:
            periodSeconds: 30
            failureThreshold: 600
        keycloak-operator:
          livenessProbe:
            initialDelaySeconds: 180
          readinessProbe:
            initialDelaySeconds: 180
  6. 保存并退出文件编辑器。此时将应用所做的更改、并开始升级。

  7. (可选)验证 Pod 是否终止并重新可用:

    watch kubectl get pods -n [netapp-acc or custom namespace]
  8. 等待Astra Control状态条件指示升级已完成且准备就绪 (True):

    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
    备注 要在操作期间监控升级状态、请运行以下命令: kubectl get AstraControlCenter -o yaml -n [netapp-acc or custom namespace]
    备注 要检查Astra控制中心操作员日志、请运行以下命令:
    kubectl logs deploy/acc-operator-controller-manager -n netapp-acc-operator -c manager -f

验证系统状态

  1. 登录到 Astra 控制中心。

  2. 验证此版本是否已升级。请参见用户界面中的*支持*页面。

  3. 验证所有受管集群和应用程序是否仍存在并受到保护。