Skip to main content
本製品の最新リリースがご利用いただけます。
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

Astra Control Center をアップグレードします

共同作成者

Astra Control Center をアップグレードするには、NetApp Support Siteからインストールバンドルをダウンロードし、以下の手順を実行して、環境内の Astra Control Center コンポーネントをアップグレードします。この手順を使用して、インターネット接続環境またはエアギャップ環境の Astra コントロールセンターをアップグレードできます。

必要なもの
このタスクについて

Astra Control Center のアップグレードプロセスでは、次の手順を実行できます。

重要 すべてのAstra Control Centerポッドが削除されないように、アップグレードプロセス全体で次のコマンドを実行しないでください。 kubectl delete -f astra_control_center_operator_deploy.yaml
ヒント スケジュール、バックアップ、 Snapshot が実行されていないときは、メンテナンス時間内にアップグレードを実行します。
メモ Docker Engine の代わりに Red Hat の Podman を使用している場合は、 Docker コマンドの代わりに Podman コマンドを使用できます。

Astra Control Center バンドルをダウンロードします

  1. Astra Control Centerアップグレードバンドルをダウンロードします (astra-control-center-[version].tar.gz)をダウンロードします。https:mysupport.netapp.com/site/products/all/details/astra-control-center/downloads-tab[NetApp Support Site^]

  2. (任意)次のコマンドを使用して、バンドルのシグニチャを確認します。

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

バンドルを開梱し、ディレクトリを変更します

  1. 画像を抽出します。

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

イメージをローカルレジストリに追加します

  1. コンテナエンジンに応じた手順を実行します。

Docker です
  1. Astraディレクトリに移動します。

    cd acc
  2. [[[[</Z1>[</Z1>[</Z1>[</Z1>[</Z1>[</Z1>[</Z1>[</Z1></Z1>_image_local_registry_push]]]]]]]]]]</Z2>アストラControl Centerイメージディレクトリ内のパッケージイメージをローカルレジストリにプッシュします。</Z3>コマンドを実行する前に、次の置き換えを行ってください。

    • bundle_fileをAstra Controlバンドルファイルの名前に置き換えます(例: acc.manifest.yaml)。

    • my_registryをDockerリポジトリのURLに置き換えます。

    • my_registry_userをユーザー名に置き換えます。

    • my_registry_tokenをレジストリの認証済みトークンに置き換えます。

      kubectl astra packages push-images -m BUNDLE_FILE -r MY_REGISTRY -u MY_REGISTRY_USER -p MY_REGISTRY_TOKEN
ポドマン
  1. レジストリにログインします。

    podman login [your_registry_path]
  2. 次のスクリプトを実行して、コメントに記載されているように<your _registry>を置き換えます。

    # You need to be at the root of the tarball.
    # You should see these files to confirm correct location:
    #   acc.manifest.yaml
    #   acc/
    
    # Replace <YOUR_REGISTRY> with your own registry (e.g registry.customer.com or registry.customer.com/testing, etc..)
    export REGISTRY=<YOUR_REGISTRY>
    export PACKAGENAME=acc
    export PACKAGEVERSION=22.08.1-26
    export DIRECTORYNAME=acc
    for astraImageFile in $(ls ${DIRECTORYNAME}/images/*.tar) ; do
      # Load to local cache
      astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image(s): //')
    
      # Remove path and keep imageName.
      astraImageNoPath=$(echo ${astraImage} | sed 's:.*/::')
    
      # Tag with local image repo.
      podman tag ${astraImage} ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath}
    
      # Push to the local repo.
      podman push ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath}
    done

更新された Astra Control Center オペレータをインストールします

  1. ディレクトリを変更します。

    cd manifests
  2. Astra Control Centerオペレータ配置YAMLを編集します (astra_control_center_operator_deploy.yaml)を参照して、ローカルレジストリとシークレットを参照してください。

    vim astra_control_center_operator_deploy.yaml
    1. 認証が必要なレジストリを使用する場合は、のデフォルト行を置き換えます imagePullSecrets: [] 次の条件を満たす場合:

      imagePullSecrets:
      - name: <name_of_secret_with_creds_to_local_registry>
    2. 変更 [your_registry_path] をクリックします kube-rbac-proxy でイメージをプッシュしたレジストリパスへのイメージ 前の手順

    3. 変更 [your_registry_path] をクリックします acc-operator-controller-manager でイメージをプッシュしたレジストリパスへのイメージ 前の手順

    4. に次の値を追加します 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
        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"
              - name: ACCOP_HELM_UPGRADETIMEOUT
                value: 300m
              image: [your_registry_path]/acc-operator:[version x.y.z]
              imagePullPolicy: IfNotPresent
            imagePullSecrets: []
  3. 更新された Astra Control Center オペレータをインストールします。

    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
  4. ポッドが実行中であることを確認します

    kubectl get pods -n netapp-acc-operator

Astra Control Center をアップグレードします

  1. Astra Control Centerカスタムリソース(CR)の編集 (astra_control_center_min.yaml)をクリックし、Astraバージョンを変更します (astraVersion の内部 Spec)最新の番号:

    kubectl edit acc -n [netapp-acc or custom namespace]
    メモ レジストリパスは、のイメージをプッシュしたレジストリパスと一致する必要があります 前の手順
  2. 内に次の行を追加します additionalValues の内部 Spec Astra Control Center CRで、次の手順を実行します。

    additionalValues:
        nautilus:
          startupProbe:
            periodSeconds: 30
            failureThreshold: 600
  3. 次のいずれかを実行します。

    1. 独自のIngressControllerまたは入力がなく、トラフィックゲートウェイをロードバランサタイプサービスとして使用していて、そのセットアップを続行する場合は、別のフィールドを指定します ingressType (まだ存在しない場合)を選択し、に設定します AccTraefik

      ingressType: AccTraefik
    2. デフォルトのAstra Control Centerの一般的な入力配置に切り替える場合は、独自のIngressController/Ingressセットアップ(TLS終端など)を指定し、Astra Control Centerへのルートを開き、を設定します ingressType 終了: Generic

      ingressType: Generic
      ヒント フィールドを省略すると、プロセスは汎用的な配置になります。汎用的な導入が不要な場合は、必ずフィールドを追加してください。
  4. (オプション)ポッドが終了し、再び使用可能になったことを確認します。

    watch kubectl get po -n [netapp-acc or custom namespace]
  5. Astra のステータス状態がアップグレードが完了し、準備ができたことを示すまで待ちます。

    kubectl get -o yaml -n [netapp-acc or custom namespace] astracontrolcenters.astra.netapp.io astra

    対応:

    conditions:
      - lastTransitionTime: "2021-10-25T18:49:26Z"
        message: Astra is deployed
        reason: Complete
        status: "True"
        type: Ready
      - lastTransitionTime: "2021-10-25T18:49:26Z"
        message: Upgrading succeeded.
        reason: Complete
        status: "False"
        type: Upgrading
  6. ログインし直して、すべての管理対象クラスタとアプリケーションが引き続き存在し、保護されていることを確認します。

  7. オペレータが Cert-manager を更新しなかった場合は、次の手順でサードパーティのサービスをアップグレードします。

サードパーティサービスのアップグレード(オプション)

以前のアップグレード手順では、サードパーティサービス Traefik および Cert-manager はアップグレードされません。オプションで、ここで説明する手順を使用してアップグレードしたり、システムに必要な既存のサービスバージョンを保持したりできます。

  • * Traefik* :デフォルトでは、 Astra Control Center が Traefik 導入のライフサイクルを管理します。設定 externalTraefik 終了: false (デフォルト)システムに外部Traefikが存在せず、Astra Control CenterによってTraefikがインストールおよび管理されていることを示します。この場合、 externalTraefik がに設定されます false

    一方、独自のTraefik展開をお持ちの場合は、を設定します externalTraefik 終了: true。この場合、導入を維持していると、Astra Control CenterはCRDをアップグレードしません。ただし shouldUpgrade がに設定されます true

  • * Cert-manager]:デフォルトでは、Astra Control Centerは、を設定しない限り、証明書マネージャ(およびCRD)をインストールします externalCertManager 終了: true。設定 shouldUpgrade 終了: true Astra Control Centerを使用するには、CRDをアップグレードします。

次のいずれかの条件に該当する場合は、 Traefik がアップグレードされます。

  • externalTraefik: false

  • externalTraefik: true と shouldUpgrade: true 。

手順
  1. を編集します acc CR:

    kubectl edit acc -n [netapp-acc or custom namespace]
  2. を変更します externalTraefik フィールドと shouldUpgrade いずれかの値を入力します true または false 必要に応じて。

    crds:
        externalTraefik: false
        externalCertManager: false
        shouldUpgrade: false

システムステータスを確認します

  1. Astra Control Center にログインします。

  2. すべての管理対象クラスタとアプリケーションが引き続き存在し、保護されていることを確認します。

ロードバランシング用の入力を設定します

Kubernetes 入力オブジェクトを設定して、クラスタ内でのロードバランシングなどのサービスへの外部アクセスを管理できます。

  • デフォルトアップグレードでは、一般的な入力配置が使用されます。この場合は、入力コントローラまたは入力リソースも設定する必要があります。

  • 入力コントローラが不要で、すでに持っているものを保持したい場合は、を設定します ingressType 終了: AccTraefik

メモ サービスタイプ「 LoadBalancer 」および入力の詳細については、を参照してください "要件"

この手順は、使用する入力コントローラのタイプによって異なります。

  • nginx 入力コントローラ

  • OpenShift 入力コントローラ

必要なもの
  • CR 仕様で、

    • 状況 crd.externalTraefik が存在し、に設定されている必要があります false または

    • 状況 crd.externalTraefik はです truecrd.shouldUpgrade もです true

  • が必要です "入力コントローラ" すでに導入されている必要があります。

  • "入力クラス" 入力コントローラに対応するものがすでに作成されている必要があります。

  • V1.19 と v1.21 の間で Kubernetes のバージョンを使用している。

Nginx Ingress Controller の手順
  1. 既存のシークレットを使用します secure-testing-cert または、タイプのシークレットを作成します[kubernetes.io/tls]をクリックします netapp-acc (またはカスタム名前付き)ネームスペース。を参照してください "TLS シークレット"

  2. 入力リソースをに配置します netapp-acc (またはカスタム名前付き)非推奨スキーマまたは新しいスキーマの名前空間:

    1. 廃止されたスキーマについては、次の例を参照してください。

      apiVersion: extensions/v1beta1
      kind: IngressClass
      metadata:
        name: ingress-acc
        namespace: [netapp-acc or custom namespace]
        annotations:
          kubernetes.io/ingress.class: nginx
      spec:
        tls:
        - hosts:
          - <ACC address>
          secretName: [tls secret name]
        rules:
        - host: [ACC address]
          http:
            paths:
            - backend:
              serviceName: traefik
              servicePort: 80
              pathType: ImplementationSpecific
    2. 新しいスキーマについては、次の例を参照してください。

    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
OpenShift 入力コントローラの手順
  1. 証明書を調達し、 OpenShift ルートで使用できるようにキー、証明書、および CA ファイルを取得します。

  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

入力セットアップを確認します

入力セットアップを確認してから、続行できます。

  1. Traefikがに変更されていることを確認します clusterIP ロードバランサから:

    kubectl get service traefik -n [netapp-acc or custom namespace]
  2. Traefik でルートを確認します。

    Kubectl get ingressroute ingressroutetls -n [netapp-acc or custom namespace]
    -o yaml | grep "Host("
    メモ 結果は空である必要があります。