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

Astra データストアプレビューをインストールします

Astra データストアプレビューをインストールするには、からインストールバンドルをダウンロードします "ネットアップサポートサイト" およびこの手順 に記載されているインストール手順を実行します。

必要なもの

Astra Data Store プレビューインストールプロセスでは、次の手順を実行できます。

画像レジストリをシークレットで操作できるように Astra データストアプレビューを有効にする場合は、を参照してください "こちらの技術情報"

Astra Data Store プレビューバンドルをダウンロードして、イメージを展開

  1. にログインします "ネットアップサポートサイト" Astra Data Store プレビューバンドル (`2021.12.01_ads.tar') をダウンロードします。

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

    openssl dgst -sha256 -verify 2021.12_ads.pub -signature 2021.12_ads.sig 2021.12.01_ads.tar
  3. 画像を抽出します。

    tar -xvf 2021.12.01_ads.tar

バイナリをコピーし、ローカルレジストリにイメージをプッシュします

  1. kubectl-astras バイナリを ' イメージを抽出するために使用したディレクトリから 'k8s kubectl バイナリがインストールされている標準パス (/usr/bin/ など ) にコピーしますkubectl-astras は、 Astra データストアプレビュークラスタをインストールおよび管理するカスタムの kubectl 拡張機能です。

    cp -p ./bin/kubectl-astrads /usr/bin/.
  2. Astra Data Store プレビューイメージディレクトリ内のファイルをローカルレジストリに追加します。

    注記 以下の画像の自動ロードについては、サンプルスクリプトを参照してください。
    1. レジストリにログインします。

      docker login [your_registry_path]
    2. 環境変数を 'Astra Data Store プレビューイメージをプッシュするレジストリパスに設定しますたとえば 'repo.company.com` です

      export REGISTRY=repo.company.com/astrads
    3. スクリプトを実行して Docker にイメージをロードし、イメージにタグを付けます。 [[[</Z1>[</Z1>[</Z1>_image_local_registry_push]] ローカルレジストリにイメージをプッシュします。 </Z2>

    for astraImageFile in $(ls images/*.tar) ; do
       astraImage=$(docker load --input ${astraImageFile} | sed 's~Loaded image: ~~')
       astraImageShort=`echo $astraImage | sed 's~.*/~~'`
       docker tag ${astraImage} ${REGISTRY}/${astraImageShort}
       docker push ${REGISTRY}/${astraImageShort}
    done
    sed -i 's~\[YOUR REGISTRY\]~'${REGISTRY}'~' ./manifests/*.yaml

OpenShift 手順 の略

次の手順 は、 Red Hat OpenShift Container Platform ( OCP )に導入する場合にのみ必要です。この手順 は、 OCP 以外の Kubernetes クラスタへの導入にはスキップできます。

例 1. 詳細

すべての Astra Data Store プレビューコンポーネントをインストールする名前空間「 astras -system 」を作成します。

以下の手順は、 Red Hat OpenShift Container Platform ( OCP )に導入する場合にのみ必要です。

  1. ネームスペースを作成します。

    kubectl create -f ads_namespace.yaml

    例: ads_namespac.yaml

    apiVersion: v1
    kind: Namespace
    metadata:
      labels:
        control-plane: operator
      name: astrads-system

OpenShift では、セキュリティコンテキスト制約( SCC )を使用して、ポッドで実行できるアクションを制御します。デフォルトでは、任意のコンテナの実行には制限付き SCC が付与され、その SCC で定義された機能のみが付与されます。

制限付き SCC では、 Astra Data Store プレビュークラスタポッドで必要な権限が提供されません。この手順を使用して、 Astra データストアのプレビュー版に必要な権限(サンプルに記載)を付与します。

カスタム SCC を Astra Data Store Preview ネームスペースのデフォルトのサービスアカウントに割り当てます。

以下の手順は、 Red Hat OpenShift Container Platform ( OCP )に導入する場合にのみ必要です。

  1. カスタム SCC を作成します。

    kubectl create -f ads_privileged_scc.yaml

    サンプル: ads_privileged_ssc.yaml

    allowHostDirVolumePlugin: true
    allowHostIPC: true
    allowHostNetwork: true
    allowHostPID: true
    allowHostPorts: true
    allowPrivilegeEscalation: true
    allowPrivilegedContainer: true
    allowedCapabilities:
    - '*'
    allowedUnsafeSysctls:
    - '*'
    apiVersion: security.openshift.io/v1
    defaultAddCapabilities: null
    fsGroup:
      type: RunAsAny
    groups: []
    kind: SecurityContextConstraints
    metadata:
      annotations:
        kubernetes.io/description: 'ADS privileged. Grant with caution.'
        release.openshift.io/create-only: "true"
      name: ads-privileged
    priority: null
    readOnlyRootFilesystem: false
    requiredDropCapabilities: null
    runAsUser:
      type: RunAsAny
    seLinuxContext:
      type: RunAsAny
    seccompProfiles:
    - '*'
    supplementalGroups:
      type: RunAsAny
    users:
    - system:serviceaccount:astrads-system:default
    volumes:
    - '*'
  2. 「 OC get SCC 」コマンドを使用して、新たに追加された SCC を表示します。

    # oc get scc/ads-privileged
    NAME             PRIV   CAPS    SELINUX    RUNASUSER   FSGROUP    SUPGROUP   PRIORITY     READONLYROOTFS   VOLUMES
    ads-privileged   true   ["*"]   RunAsAny   RunAsAny    RunAsAny   RunAsAny   <no value>   false            ["*"]
    #

Astra Data Store プレビューのデフォルトのサービスアカウントで使用する必要なロールとロールのバインドを作成します。

次の YAML 定義は '`astrads.netapp.io` API グループの Astra Data Store プレビューリソースで必要なさまざまな役割 ( 役割のバインドを使用 ) を割り当てます

以下の手順は、 Red Hat OpenShift Container Platform ( OCP )に導入する場合にのみ必要です。

  1. 定義されたロールとロールのバインドを作成します。

    kubectl create -f oc_role_bindings.yaml

    例: OC_ROLE_bindings. yaml

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: privcrole
    rules:
    - apiGroups:
      - security.openshift.io
      resourceNames:
      - ads-privileged
      resources:
      - securitycontextconstraints
      verbs:
      - use
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: default-scc-rolebinding
      namespace: astrads-system
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: privcrole
    subjects:
    - kind: ServiceAccount
      name: default
      namespace: astrads-system
    ---
    
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: ownerref
      namespace: astrads-system
    rules:
    - apiGroups:
      - astrads.netapp.io
      resources:
      - '*/finalizers'
      verbs:
      - update
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: or-rb
      namespace: astrads-system
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: ownerref
    subjects:
    - kind: ServiceAccount
      name: default
      namespace: astrads-system

Astra Data Store プレビューオペレータをインストール

  1. Astra データストアのプレビューマニフェストを表示する:

    ls manifests/*yaml

    対応:

    manifests/astradscluster.yaml
    manifests/astradsoperator.yaml
    manifests/astradsversion.yaml
    manifests/monitoring_operator.yaml
  2. kubectl apply を使用してオペレータを配備します。

    kubectl apply -f ./manifests/astradsoperator.yaml

    対応:

    注記 名前空間の応答は、標準インストールと OCP インストールのどちらを実行したかによって異なります。
    namespace/astrads-system created
    customresourcedefinition.apiextensions.k8s.io/astradsautosupports.astrads.netapp.io created
    customresourcedefinition.apiextensions.k8s.io/astradscloudsnapshots.astrads.netapp.io created
    customresourcedefinition.apiextensions.k8s.io/astradsclusters.astrads.netapp.io created
    customresourcedefinition.apiextensions.k8s.io/astradsdeployments.astrads.netapp.io created
    customresourcedefinition.apiextensions.k8s.io/astradsexportpolicies.astrads.netapp.io created
    customresourcedefinition.apiextensions.k8s.io/astradsfaileddrives.astrads.netapp.io created
    customresourcedefinition.apiextensions.k8s.io/astradslicenses.astrads.netapp.io created
    customresourcedefinition.apiextensions.k8s.io/astradsnfsoptions.astrads.netapp.io created
    customresourcedefinition.apiextensions.k8s.io/astradsnodeinfoes.astrads.netapp.io created
    customresourcedefinition.apiextensions.k8s.io/astradsqospolicies.astrads.netapp.io created
    customresourcedefinition.apiextensions.k8s.io/astradsvolumefiles.astrads.netapp.io created
    customresourcedefinition.apiextensions.k8s.io/astradsvolumes.astrads.netapp.io created
    customresourcedefinition.apiextensions.k8s.io/astradsvolumesnapshots.astrads.netapp.io created
    role.rbac.authorization.k8s.io/astrads-leader-election-role created
    clusterrole.rbac.authorization.k8s.io/astrads-astradscloudsnapshot-editor-role created
    clusterrole.rbac.authorization.k8s.io/astrads-astradscloudsnapshot-viewer-role created
    clusterrole.rbac.authorization.k8s.io/astrads-astradscluster-editor-role created
    clusterrole.rbac.authorization.k8s.io/astrads-astradscluster-viewer-role created
    clusterrole.rbac.authorization.k8s.io/astrads-astradslicense-editor-role created
    clusterrole.rbac.authorization.k8s.io/astrads-astradslicense-viewer-role created
    clusterrole.rbac.authorization.k8s.io/astrads-astradsvolume-editor-role created
    clusterrole.rbac.authorization.k8s.io/astrads-astradsvolume-viewer-role created
    clusterrole.rbac.authorization.k8s.io/astrads-autosupport-editor-role created
    clusterrole.rbac.authorization.k8s.io/astrads-autosupport-viewer-role created
    clusterrole.rbac.authorization.k8s.io/astrads-manager-role created
    clusterrole.rbac.authorization.k8s.io/astrads-metrics-reader created
    clusterrole.rbac.authorization.k8s.io/astrads-netappexportpolicy-editor-role created
    clusterrole.rbac.authorization.k8s.io/astrads-netappexportpolicy-viewer-role created
    clusterrole.rbac.authorization.k8s.io/astrads-netappsdsdeployment-editor-role created
    clusterrole.rbac.authorization.k8s.io/astrads-netappsdsdeployment-viewer-role created
    clusterrole.rbac.authorization.k8s.io/astrads-netappsdsnfsoption-editor-role created
    clusterrole.rbac.authorization.k8s.io/astrads-netappsdsnfsoption-viewer-role created
    clusterrole.rbac.authorization.k8s.io/astrads-netappsdsnodeinfo-editor-role created
    clusterrole.rbac.authorization.k8s.io/astrads-netappsdsnodeinfo-viewer-role created
    clusterrole.rbac.authorization.k8s.io/astrads-proxy-role created
    rolebinding.rbac.authorization.k8s.io/astrads-leader-election-rolebinding created
    clusterrolebinding.rbac.authorization.k8s.io/astrads-manager-rolebinding created
    clusterrolebinding.rbac.authorization.k8s.io/astrads-proxy-rolebinding created
    configmap/astrads-autosupport-cm created
    configmap/astrads-firetap-cm created
    configmap/astrads-fluent-bit-cm created
    configmap/astrads-kevents-asup created
    configmap/astrads-metrics-cm created
    service/astrads-operator-metrics-service created
    deployment.apps/astrads-operator created
  3. Astra データストアオペレータポッドが起動し、実行中であることを確認します。

    kubectl get pods -n astrads-system

    対応:

    NAME                                READY   STATUS    RESTARTS   AGE
    astrads-operator-5ffb94fbf-7ln4h    1/1     Running   0          17m

Astra Data Store プレビュー版 YAML を導入します

  1. kubectl apply を使用した導入:

    kubectl apply -f ./manifests/astradsversion.yaml
  2. ポッドが実行されていることを確認します。

    kubectl get pods -n astrads-system

    対応:

    NAME                                          READY   STATUS    RESTARTS   AGE
    astrads-cluster-controller-7f6f884645-xxf2n   1/1     Running   0          117s
    astrads-ds-nodeinfo-astradsversion-2jqnk      1/1     Running   0          2m7s
    astrads-ds-nodeinfo-astradsversion-dbk7v      1/1     Running   0          2m7s
    astrads-ds-nodeinfo-astradsversion-rn9tt      1/1     Running   0          2m7s
    astrads-ds-nodeinfo-astradsversion-vsmhv      1/1     Running   0          2m7s
    astrads-license-controller-fb8fd56bc-bxq7j    1/1     Running   0          2m2s
    astrads-operator-5ffb94fbf-7ln4h              1/1     Running   0          2m10s

Astra データストアプレビューライセンスを適用

  1. プレビュー版への登録時に入手したネットアップライセンスファイル( NLF )を適用します。コマンドを実行する前に、使用しているクラスタの名前(「 <AstrA-Data-Store-cluster-name>` )を入力します 導入に進みます または ' すでに配備されているか ' ライセンス・ファイルへのパス (<file_path/file.txt>) があります

    kubectl astrads license add --license-file-path <file_path/file.txt> --ads-cluster-name <Astra-Data-Store-cluster-name> -n astrads-system
  2. ライセンスが追加されたことを確認します。

    kubectl astrads license list

    対応:

    NAME        ADSCLUSTER                 VALID   PRODUCT                     EVALUATION  ENDDATE     VALIDATED
    p100000006  astrads-example-cluster    true    Astra Data Store Preview    true        2022-01-23  2021-11-04T14:38:54Z

Astra データストアプレビュークラスタをインストール

  1. YAML ファイルを開きます。

    vim ./manifests/astradscluster.yaml
  2. YAML ファイルで次の値を編集します。

    注記 YAML ファイルの簡単な例は、次の手順を実行します。
    1. (必須) * Metadata* :「 metadata 」で、「 name 」の文字列をクラスタの名前に変更します。このクラスタ名は、ときと同じである必要があります ライセンスを適用します

    2. ( 必須 )Spec:'spec' の次の必須値を変更します

      • 「 mvip 」文字列を、クラスタ内の任意のワーカーノードからルーティング可能なフローティング管理 IP の IP アドレスに変更します。

      • 「 adsDataNetworks 」に、 NetApp ボリュームをマウントするホストからルーティング可能なフローティング IP アドレス(「アドレス」)をカンマで区切って追加します。ノードごとに 1 つのフローティング IP アドレスを使用します。データネットワーク IP アドレスは、 Astra Data Store のプレビューノードと同じ数以上必要です。Astra データストアプレビューの場合、少なくとも 4 つのアドレスを意味します。あとで 5 つのノードにクラスタを拡張する予定の場合は、 5 つのアドレスを意味します。

      • 「 adsDataNetworks 」で、データネットワークが使用するネットマスクを指定します。

      • 「 adsNetworkInterfaces 」で、「 <mgmt_interface_name> 」および「 <cluster_and _storage_interface_name> 」の値を、管理、クラスタ、およびストレージに使用するネットワークインターフェイス名に置き換えます。名前を指定しない場合、ノードのプライマリインターフェイスが管理、クラスタ、ストレージのネットワークに使用されます。

        注記 クラスタとストレージのネットワークのインターフェイスが同じである必要があります。Astra Data Store プレビュー管理インターフェイスは、 Kubernetes ノードの管理インターフェイスと同じである必要があります。
    3. (任意) * monitoringConfig* :を設定する場合 監視オペレータ (監視に Astra Control Center を使用していない場合はオプション)、セクションからコメントを削除し、エージェント CR (監視用オペレータリソース)が適用されるネームスペース(デフォルトは「 NetApp-monitoring 」)を追加し、前の手順で使用したレジストリ(「 Your_registry_path 」)のリポジトリパスを追加します。

    4. (任意) * autoSupportConfig * :を保持します "AutoSupport" プロキシを設定する必要がない場合のデフォルト値は次のとおりです。

      • 「 ProxyURL 」の場合は、 AutoSupport バンドルの転送に使用するポートにプロキシの URL を設定します。

      注記 ほとんどのコメントは YAML サンプルから削除されています。
    apiVersion: astrads.netapp.io/v1alpha1
    kind: AstraDSCluster
    metadata:
      name: astrads-cluster-name
      namespace: astrads-system
    spec:
      adsNodeConfig:
        cpu: 9
        memory: 34
      adsNodeCount: 4
      mvip: ""
      adsDataNetworks:
        - addresses: ""
          netmask:
      # Specify the network interface names to use for management, cluster and storage networks.
      # If none are specified, the node's primary interface will be used for management, cluster and storage networking.
      # To move the cluster and storage networks to a different interface than management, specify all three interfaces to use here.
      # NOTE: The cluster and storage networks need to be on the same interface.
      adsNetworkInterfaces:
        managementInterface: "<mgmt_interface_name>"
        clusterInterface: "<cluster_and_storage_interface_name>"
        storageInterface: "<cluster_and_storage_interface_name>"
      # [Optional] Provide a k8s label key that defines which protection domain a node belongs to.
        # adsProtectionDomainKey: ""
      # [Optional] Provide a monitoring config to be used to setup/configure a monitoring agent.
     # monitoringConfig:
       # namespace: "netapp-monitoring"
       # repo: "[YOUR REGISTRY]"
      autoSupportConfig:
        autoUpload: true
        enabled: true
        coredumpUpload: false
        historyRetentionCount: 25
        destinationURL: "https://support.netapp.com/put/AsupPut"
        # ProxyURL defines the URL of the proxy with port to be used for AutoSupport bundle transfer
        # proxyURL:
        periodic:
          - schedule: "0 0 * * *"
            periodicconfig:
            - component:
                name: storage
                event: dailyMonitoring
              userMessage: Daily Monitoring Storage AutoSupport bundle
              nodes: all
            - component:
                name: controlplane
                event: daily
              userMessage: Daily Control Plane AutoSupport bundle
  3. kubectl apply を使用してクラスタを導入します

    kubectl apply -f ./manifests/astradscluster.yaml
  4. ( OCP のみ) SELinux が有効になっている場合は、 Astra Data Store プレビュークラスタ内のノードで次のディレクトリの「 SELinux 」コンテキストにラベルを付け直します。

    sudo chcon -R -t container_file_t /var/opt/netapp/firetap/rootfs/var/asup/notification/firetap/
    sudo chcon -R -t container_file_t /var/netapp/firetap/firegen/persist/
    注記 これは 'SELinux がこれらのディレクトリの書き込みを禁止し ' サポートポッドが CrashLoopBackoff 状態になるためですこの手順は、 Astra データストアプレビュークラスタ内のすべてのノードで実行する必要があります。
  5. クラスタ作成処理が完了するまで数分待ってから、ポッドが実行されていることを確認します。

    kubectl get pods -n astrads-system

    回答例:

    NAME                     READY     STATUS    RESTARTS    AGE
    astrads-cluster-controller-7c67cc7f7b-2jww2 1/1 Running 0 7h31m
    astrads-deployment-support-788b859c65-2qjkn 3/3 Running 19 12d
    astrads-ds-astrads-cluster-1ab0dbc-j9jzc 1/1 Running 0 5d2h
    astrads-ds-astrads-cluster-1ab0dbc-k9wp8 1/1 Running 0 5d1h
    astrads-ds-astrads-cluster-1ab0dbc-pwk42 1/1 Running 0 5d2h
    astrads-ds-astrads-cluster-1ab0dbc-qhvc6 1/1 Running 0 8h
    astrads-ds-nodeinfo-astradsversion-gcmj8 1/1 Running 1 12d
    astrads-ds-nodeinfo-astradsversion-j826x 1/1 Running 3 12d
    astrads-ds-nodeinfo-astradsversion-vdthh 1/1 Running 3 12d
    astrads-ds-nodeinfo-astradsversion-xwgsf 1/1 Running 0 12d
    astrads-ds-support-828vw 2/2 Running 2 5d2h
    astrads-ds-support-cfzts 2/2 Running 0 8h
    astrads-ds-support-nzkkr 2/2 Running 15 7h49m
    astrads-ds-support-xxbnp 2/2 Running 1 5d2h
    astrads-license-controller-86c69f76bb-s6fb7 1/1 Running 0 8h
    astrads-operator-79ff8fbb6d-vpz9m 1/1 Running 0 8h
  6. クラスタの導入の進捗を確認します。

    kubectl get astradscluster -n astrads-system

    回答例:

    NAME                        STATUS    VERSION    SERIAL NUMBER    MVIP       AGE
    
    astrads-example-cluster   created   2021.10.0   p100000006       10.x.x.x   10m

導入に関連するイベントを把握

クラスタの導入中に ' オペレーション・ステータスは ' ブランクから ' 進行中 ' から作成済みに変更する必要がありますクラスタの導入には約 8~10 分かかります。導入中にクラスタイベントを監視するには、次のいずれかのコマンドを実行します。

kubectl get events --field-selector involvedObject.kind=AstraDSCluster -n astrads-system
kubectl describe astradscluster <cluster name> -n astrads-system

導入時の主なイベントを次に示します。

イベントメッセージ 意味

ADS クラスタに参加するコントロールプレーンノードを 4 つ選択しました

Astra Data Store プレビューオペレータは、 Astra データストアプレビュークラスタを構築するために、 CPU 、メモリ、ストレージ、ネットワークを備えた十分なノードを特定しました。

ADS クラスタが作成中です

Astra データストアプレビュークラスタコントローラが、クラスタ作成処理を開始しました。

ADS クラスタが作成されました

クラスタが作成されました。

クラスタのステータスが「 in progress 」に変わらない場合は、オペレータログでノード選択の詳細を確認します。

kubectl logs -n astrads-system <astrads operator pod name>

クラスタのステータスが「処理中」のままである場合は、クラスタコントローラのログを確認します。

kubectl logs -n astrads-system <astrads cluster controller pod name>

Astra データストアのプレビュー監視を設定

Astra データストアプレビューは、 Astra Control Center の監視用、または別のテレメトリサービスによる監視用に設定できます。

監視を設定する前に’astras-system’名前空間にアクティブなAstraデータストアクラスタが必要です

Astra Control Center プレビューの監視を設定します

次の手順は、 Astra データストアのプレビューが Astra Control Center のバックエンドとして管理された後にのみ実行します。

  1. Astra Control Center によるモニタリングのための Astra データストアプレビューの構成:

    kubectl astrads monitoring -n netapp-monitoring -r [YOUR REGISTRY] setup

監視オペレータをインストールします

(オプション) Astra Data Store プレビューを Astra Control Center にインポートしない場合は、監視オペレータをお勧めします。モニタリングオペレータは、アストラデータストアプレビューインスタンスがスタンドアロン環境である場合、 Cloud Insights を使用してテレメトリを監視する場合、または Elastic などのサードパーティのエンドポイントにログをストリーミングする場合にインストールできます。

  1. 次のインストールコマンドを実行します。

    kubectl apply -f ./manifests/monitoring_operator.yaml
  2. Astra データストアプレビューで監視を設定:

    kubectl astrads monitoring -n netapp-monitoring -r [YOUR REGISTRY] setup

次の手順

を実行して導入を完了します "セットアップのタスク"