Astraデータストアのコンポーネントをセットアップする
お先にどうぞ "スタンドアロンのAstraデータストアをインストール" とで、いくつかの対処方法を "環境に関する前提条件"Tridentをインストールし、Kubernetesのスナップショット機能を設定し、ストレージバックエンドをセットアップして、デフォルトのストレージクラスを作成します。
|
Astra Control Centerを使用してAstraデータストアを導入している場合は、セットアップする予定がない限り、これらの手順に従う必要はありません その他の監視オプション。 |
Astra Trident をインストール
Astraデータストアの場合、Astra Trident 21.10.1以降をインストールする必要があります。Trident は次のいずれかの方法でインストールできます。
-
"Trident オペレータを使用して Astra Trident をインストール"。
Trident オペレータは、手動または Helm を使用して導入できます。
Kubernetes スナップショットの CRD とコントローラをインストールします
永続的ボリューム要求( PVC )の Snapshot を作成するには、 Kubernetes の Snapshot SSD とコントローラが必要です。環境に CRD とコントローラがインストールされていない場合は、次のコマンドを実行してインストールします。
|
次のコマンド例では ' ディレクトリとして /trident` を想定していますが ' 使用するディレクトリは 'YAML ファイルのダウンロードに使用した任意のディレクトリにすることができます |
-
をダウンロードします "Kubernetes snapshot controller yaml ファイル":
-
setup-snapshot-controller.yaml
-
rbac -snapshot-controller.yaml
-
-
をダウンロードします "YAML CRD":
-
snapshot.storage.k8es.io_volumesnapshotclasses.yaml
-
snapshot.storage.k8es.io_volumesnapshotcontentes.yaml
-
snapshot.storage.k8es.io_volumesnapshots.yaml
-
-
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
-
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
-
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
-
setup-snapshot-controller.yaml を適用します。
kubectl apply -f trident/setup-snapshot-controller.yaml
対応:
deployment.apps/snapshot-controller configured
-
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
-
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
-
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 データストアストレージバックエンドを作成する。
-
安全な端末を使用して「 ads_backend.json 」を作成します。
vi ads_backend.json
-
JSON ファイルを設定します。
JSONの例を次に示します。 -
「 cluster 」の値を Astra Data Store クラスタのクラスタ名に変更します。
-
「 namespace 」の値を、ボリュームの作成に使用するネームスペースに変更します。
-
バックエンドではなく 'exportpolicy-CR を設定している場合を除き 'autoExportPolicy' の値を true に変更します
-
「 autoExportCIDRs 」リストに、アクセスを許可する IP アドレスを入力します。すべてを許可するには '0.0.0.0/0` を使用します
-
「 kubeconfig 」の値については、次の手順を実行します。
-
.kube/config YAML ファイルをスペースなしの JSON 形式に変換して最小化します。
変換例:
python3 -c 'import sys, yaml, json; json.dump(yaml.load(sys.stdin), sys.stdout, indent=None)' < ~/.kube/config > kubeconf.json
-
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" } } ] }
-
-
Trident インストーラをダウンロードしたディレクトリに移動します。
cd <trident-installer or path to folder containing tridentctl>
-
ストレージバックエンドを作成します。
./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 のデフォルトのストレージクラスを作成し、ストレージバックエンドに適用
-
trident-csi ストレージクラスを作成します。
-
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
-
trident-csi の作成:
kubectl create -f ads_sc_example.yaml
対応:
storageclass.storage.k8s.io/trident-csi created
-
-
ストレージクラスが追加されたことを確認します。
kubectl get storageclass
対応:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE ads-silver csi.trident.netapp.io Delete Immediate true 6h29m
-
Trident インストーラをダウンロードしたディレクトリに移動します。
cd <trident-installer or path to folder containing tridentctl>
-
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データストアクラスタが必要です
-
次のインストールコマンドを実行します。
kubectl apply -f ./manifests/monitoring_operator.yaml
-
Astraデータストアを監視用に設定します。
kubectl astrads monitoring -n netapp-monitoring -r [YOUR REGISTRY] setup
-
ElasticエンドポイントにEMSログをストリーミングするようにAstraデータストアを設定します。
kubectl astrads monitoring es --port <portname> --host <hostname>