日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

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

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

必要なもの

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

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

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

  1. から Astra Control Center アップグレードバンドル (`Astra - control-ccenter-[version].tar.gz') をダウンロードします "ネットアップサポートサイト"

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

    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]
    2. Docker にイメージをロードする。

    3. 画像にタグを付けます。

    4. [[[</Z1>[</Z1>[</Z1>[</Z1>[</Z1>[</Z1>[</Z1>[</Z1></Z1></Z1>_image_local_registry_push]]]]]]]]</Z2> ローカルレジストリにイメージをプッシュ

      export REGISTRY=[your_registry_path]
      for astraImageFile in $(ls images/*.tar)
        # Load to local cache. And store the name of the loaded image trimming the 'Loaded images: '
        do 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

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

  1. Astra Control Center オペレータの配備 YAML (`Astra_control_center_deployment.yaml ') を編集して、ローカルのレジストリと秘密を参照します。

    vim astra_control_center_operator_deploy.yaml
    1. 認証が必要なレジストリを使用する場合は、デフォルト行の「 imagePullSecret:[] 」を次のように置き換えます。

      imagePullSecrets:
      - name: <name_of_secret_with_creds_to_local_registry>
    2. 「 kube-rbac プロキシ」イメージの「 [Your_registry_path] 」を、でイメージをプッシュしたレジストリパスに変更します 前の手順

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

    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: []
  2. 更新された 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

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

  1. Astra Control Center カスタムリソース( CR )( 'Astra_control_center_min.yaml )を編集し、 Astra バージョン( 'Spec' の中の 'astrave) の番号を最新のものに変更します。

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

    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 によってインストールおよび管理されていることを示します。この場合、「 externalTraefik 」は「 false 」に設定されます。

    一方、 Traefik を独自に導入している場合は、「 externalTraefik 」を「 true 」に設定します。この場合 ' 配置を維持して 'Astra Control Center は 'shouldUpgrade' が true' に設定されていない限り 'CRD をアップグレードしません

  • Cert-managor: デフォルトでは 'externalCertManager` を TRUE に設定しない限り 'Astra Control Center は cert-manager ( および CRD) をインストールします’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 」が「真」の場合、「 CRD.shoulldUpgrade 」も「真」でなければなりません。

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

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

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

Nginx Ingress Controller の手順
  1. 既存のシークレット「 secure-testing-cert 」を使用するか、タイプのシークレットを作成します "「 sKubernetes .io/tls 」と入力します" に示すように 'NetApp-acc' (またはカスタム名前の)名前空間内の TLS 秘密鍵と証明書の場合 "TLS シークレット"

  2. 非推奨または新しいスキーマのいずれかの入力リソースを NetApp-acc` (またはカスタム名前付き)ネームスペースに配置します。

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

      apiVersion: extensions/v1beta1
      kind: Ingress
      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. Loadbalancer から 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("
    注記 結果は空である必要があります。