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

Astraデータストアのコンポーネントをセットアップする

お先にどうぞ "スタンドアロンのAstraデータストアをインストール" とで、いくつかの対処方法を "環境に関する前提条件"Tridentをインストールし、Kubernetesのスナップショット機能を設定し、ストレージバックエンドをセットアップして、デフォルトのストレージクラスを作成します。

注記 Astra Control Centerを使用してAstraデータストアを導入している場合は、セットアップする予定がない限り、これらの手順に従う必要はありません その他の監視オプション

Astra Trident をインストール

Astraデータストアの場合、Astra Trident 21.10.1以降をインストールする必要があります。Trident は次のいずれかの方法でインストールできます。

Kubernetes スナップショットの CRD とコントローラをインストールします

永続的ボリューム要求( PVC )の Snapshot を作成するには、 Kubernetes の Snapshot SSD とコントローラが必要です。環境に CRD とコントローラがインストールされていない場合は、次のコマンドを実行してインストールします。

注記 次のコマンド例では ' ディレクトリとして /trident` を想定していますが ' 使用するディレクトリは 'YAML ファイルのダウンロードに使用した任意のディレクトリにすることができます
必要なもの
手順
  1. snapshot.storage.k8es.io_volumesnapshotclasses.yaml を適用します。

    kubectl apply -f trident/snapshot.storage.k8s.io_volumesnapshotclasses.yaml

    対応:

    customresourcedefinition.apiextensions.k8s.io/volumesnapshotclasses.snapshot.storage.k8s.io configured
  2. snapshot.storage.k8es.io_volumesnapshotcontentes.yaml を適用します。

    kubectl apply -f trident/snapshot.storage.k8s.io_volumesnapshotcontents.yaml

    対応:

    customresourcedefinition.apiextensions.k8s.io/volumesnapshotcontents.snapshot.storage.k8s.io configured
  3. snapshot.storage.k8es.io_volumesnapshotes.yaml を適用します。

    kubectl apply -f trident/snapshot.storage.k8s.io_volumesnapshots.yaml

    対応:

    customresourcedefinition.apiextensions.k8s.io/volumesnapshots.snapshot.storage.k8s.io configured
  4. setup-snapshot-controller.yaml を適用します。

    kubectl apply -f trident/setup-snapshot-controller.yaml

    対応:

    deployment.apps/snapshot-controller configured
  5. RBAC の -snapshot-controller.yaml を適用します。

    kubectl apply -f trident/rbac-snapshot-controller.yaml

    対応:

    serviceaccount/snapshot-controller configured
    clusterrole.rbac.authorization.k8s.io/snapshot-controller-runner configured
    clusterrolebinding.rbac.authorization.k8s.io/snapshot-controller-role configured
    role.rbac.authorization.k8s.io/snapshot-controller-leaderelection configured
    rolebinding.rbac.authorization.k8s.io/snapshot-controller-leaderelection configured
  6. CRD YAML ファイルが適用されていることを確認します。

    kubectl get crd | grep volumesnapshot

    回答例:

    astradsvolumesnapshots.astrads.netapp.io              2021-08-04T17:48:21Z
    volumesnapshotclasses.snapshot.storage.k8s.io         2021-08-04T22:05:49Z
    volumesnapshotcontents.snapshot.storage.k8s.io        2021-08-04T22:05:59Z
    volumesnapshots.snapshot.storage.k8s.io               2021-08-04T22:06:17Z
  7. Snapshot コントローラファイルが適用されたことを確認します。

    kubectl get pods -n kube-system | grep snapshot

    回答例:

    snapshot-controller-7f58886ff4-cdh78                                    1/1     Running   0          13s
    snapshot-controller-7f58886ff4-tmrd9                                    1/1     Running   0          32s

Astra データストアをストレージバックエンドとしてセットアップする

ads_backend.json ファイルにストレージバックエンドパラメータを設定し、 Astra データストアストレージバックエンドを作成する。

手順
  1. 安全な端末を使用して「 ads_backend.json 」を作成します。

    vi ads_backend.json
  2. JSON ファイルを設定します。

    注記 JSONの例を次に示します。
    1. 「 cluster 」の値を Astra Data Store クラスタのクラスタ名に変更します。

    2. 「 namespace 」の値を、ボリュームの作成に使用するネームスペースに変更します。

    3. バックエンドではなく 'exportpolicy-CR を設定している場合を除き 'autoExportPolicy' の値を true に変更します

    4. 「 autoExportCIDRs 」リストに、アクセスを許可する IP アドレスを入力します。すべてを許可するには '0.0.0.0/0` を使用します

    5. 「 kubeconfig 」の値については、次の手順を実行します。

      1. .kube/config YAML ファイルをスペースなしの JSON 形式に変換して最小化します。

        変換例:

        python3 -c 'import sys, yaml, json; json.dump(yaml.load(sys.stdin), sys.stdout, indent=None)' < ~/.kube/config > kubeconf.json
      2. base64 としてエンコードし、 base64 出力を「 kubeconfig 」値に使用します。

        エンコーディングの例:

      cat kubeconf.json | base64 | tr -d '\n'
    {
        "version": 1,
        "storageDriverName": "astrads-nas",
        "storagePrefix": "",
        "cluster": "example-1234584",
        "namespace": "astrads-system",
        "autoExportPolicy": true,
        "autoExportCIDRs": ["0.0.0.0/0"],
        "kubeconfig": "<base64_output_of_kubeconf_json>",
        "debugTraceFlags": {"method": true, "api": true},
        "labels": {"cloud": "on-prem", "creator": "trident-dev"},
        "defaults": {
            "qosPolicy": "silver"
        },
        "storage": [
            {
                "labels": {
                    "performance": "extreme"
                },
                "defaults": {
                    "qosPolicy": "gold"
                }
            },
            {
                "labels": {
                    "performance": "premium"
                },
                "defaults": {
                    "qosPolicy": "silver"
                }
            },
            {
                "labels": {
                    "performance": "standard"
                },
                "defaults": {
                    "qosPolicy": "bronze"
                }
            }
        ]
    }
  3. Trident インストーラをダウンロードしたディレクトリに移動します。

    cd <trident-installer or path to folder containing tridentctl>
  4. ストレージバックエンドを作成します。

    ./tridentctl create backend -f ads_backend.json -n trident

    回答例:

    +------------------+----------------+--------------------------------------+--------+---------+
    |       NAME       | STORAGE DRIVER |                 UUID                 | STATE  | VOLUMES |
    +------------------+----------------+--------------------------------------+--------+---------+
    | example-1234584  | astrads-nas    | 2125fa7a-730e-43c8-873b-6012fcc3b527 | online |       0 |
    +------------------+----------------+--------------------------------------+--------+---------+

Default Astra Data Store ストレージクラスを作成

Astra Trident のデフォルトのストレージクラスを作成し、ストレージバックエンドに適用

手順
  1. trident-csi ストレージクラスを作成します。

    1. ads _sc_example.yaml を作成します:

      vi ads_sc_example.yaml

      allowVolumeExpansion: true
      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
        creationTimestamp: "2022-05-09T18:05:21Z"
        name: ads-silver
        resourceVersion: "3361772"
        uid: lo023456-da4b-51e3-b430-3aa1e3bg111a
      mountOptions:
      - vers=4
      parameters:
        backendType: astrads-nas
        selector: performance=premium
      provisioner: csi.trident.netapp.io
      reclaimPolicy: Delete
      volumeBindingMode: Immediate
    2. trident-csi の作成:

      kubectl create -f ads_sc_example.yaml

      対応:

    storageclass.storage.k8s.io/trident-csi created
  2. ストレージクラスが追加されたことを確認します。

    kubectl get storageclass

    対応:

    NAME          PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
    ads-silver    csi.trident.netapp.io   Delete          Immediate           true                   6h29m
  3. Trident インストーラをダウンロードしたディレクトリに移動します。

    cd <trident-installer or path to folder containing tridentctl>
  4. Astra Trident バックエンドがデフォルトのストレージクラスパラメータで更新されたことを確認します。

    ./tridentctl get backend -n trident -o yaml

    回答例:

    items:
    - backendUUID: 2125fa7a-730e-43c8-873b-6012fcc3b527
      config:
        autoExportCIDRs:
        - 0.0.0.0/0
        autoExportPolicy: true
        backendName: ""
        cluster: example-1234584
        credentials: null
        debug: false
        debugTraceFlags:
          api: true
          method: true
        defaults:
          exportPolicy: default
          qosPolicy: bronze
          size: 1G
          snapshotDir: "false"
          snapshotPolicy: none
        disableDelete: false
        kubeconfig: <ID>
        labels:
          cloud: on-prem
          creator: trident-dev
        limitVolumeSize: ""
        namespace: astrads-system
        nfsMountOptions: ""
        region: ""
        serialNumbers: null
        storage:
        - defaults:
            exportPolicy: ""
            qosPolicy: gold
            size: ""
            snapshotDir: ""
            snapshotPolicy: ""
          labels:
            performance: extreme
          region: ""
          supportedTopologies: null
          zone: ""
        - defaults:
            exportPolicy: ""
            qosPolicy: silver
            size: ""
            snapshotDir: ""
            snapshotPolicy: ""
          labels:
            performance: premium
          region: ""
          supportedTopologies: null
          zone: ""
        - defaults:
            exportPolicy: ""
            qosPolicy: bronze
            size: ""
            snapshotDir: ""
            snapshotPolicy: ""
          labels:
            performance: standard
          region: ""
          supportedTopologies: null
          zone: ""
        storageDriverName: astrads-nas
        storagePrefix: ""
        supportedTopologies: null
        version: 1
        zone: ""
      configRef: ""
      name: example-1234584
      online: true
      protocol: file
      state: online
      storage:
        example-1234584_pool_0:
          name: example-1234584_pool_0
          storageAttributes:
            backendType:
              offer:
              - astrads-nas
            clones:
              offer: true
            encryption:
              offer: false
            labels:
              offer:
                cloud: on-prem
                creator: trident-dev
                performance: extreme
            snapshots:
              offer: true
          storageClasses:
          - trident-csi
          supportedTopologies: null
        example-1234584_pool_1:
          name: example-1234584_pool_1
          storageAttributes:
            backendType:
              offer:
              - astrads-nas
            clones:
              offer: true
            encryption:
              offer: false
            labels:
              offer:
                cloud: on-prem
                creator: trident-dev
                performance: premium
            snapshots:
              offer: true
          storageClasses:
          - trident-csi
          supportedTopologies: null
        example-1234584_pool_2:
          name: example-1234584_pool_2
          storageAttributes:
            backendType:
              offer:
              - astrads-nas
            clones:
              offer: true
            encryption:
              offer: false
            labels:
              offer:
                cloud: on-prem
                creator: trident-dev
                performance: standard
            snapshots:
              offer: true
          storageClasses:
          - ads-silver
          supportedTopologies: null
      volumes: []

Astraデータストアの監視を設定

(オプション)別のテレメトリサービスによる監視用にAstraデータストアを設定できます。この手順 は、Astraデータストア監視用のAstra Control Centerを使用していない場合や、監視を追加のエンドポイントに拡張する場合にお勧めします。

モニタリングオペレータは、アストラデータストアインスタンスがスタンドアロン環境である場合、Cloud Insights を使用してテレメトリを監視する場合、またはElasticなどのサードパーティのエンドポイントにログをストリーミングする場合にインストールできます。

注記 Astra Control Centerの導入では、モニタリングオペレータが自動的に設定されます。次の手順 の最初の2つのコマンドはスキップできます。

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

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

    kubectl apply -f ./manifests/monitoring_operator.yaml
  2. Astraデータストアを監視用に設定します。

    kubectl astrads monitoring -n netapp-monitoring -r [YOUR REGISTRY] setup
  3. ElasticエンドポイントにEMSログをストリーミングするようにAstraデータストアを設定します。

    kubectl astrads monitoring es --port <portname> --host <hostname>