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

11. NetApp Trident ストレージプロビジョニングツールをインストールし、設定します

寄稿者 このページの PDF をダウンロード

Trident は、コンテナ向けのストレージオーケストレーションツールです。Trident を使用すると、マイクロサービスやコンテナ化されたアプリケーションは、ネットアップのストレージシステムポートフォリオ全体が提供するエンタープライズクラスのストレージサービスを利用して永続的ストレージマウントを実現できます。Trident は、アプリケーションの要件に応じて、 NetApp AFF や FAS システムなどの ONTAP ベースの製品や、 NetApp SolidFire や NetApp HCI などの Element ストレージシステム用のストレージを動的にプロビジョニングします。

導入したユーザクラスタに Trident をインストールし、永続ボリュームをプロビジョニングするには、次の手順を実行します。

注記 以下の手順は、 Trident 21.01 のインストールでスクリーンキャップを付けたものですが、 Trident Operator を手動で導入する手順も、現在の 21.04 リリースに適用されます。
  1. インストールアーカイブを管理ワークステーションにダウンロードし、内容を展開します。Trident の最新バージョンは 21.04 で、ダウンロードできます "こちらをご覧ください"

    ubuntu@gke-admin-ws-200915-151421:~$ wget https://github.com/NetApp/trident/releases/download/v21.01.0/trident-installer-21.01.0.tar.gz
    --2021-02-17 12:40:42--  https://github.com/NetApp/trident/releases/download/v21.01.0/trident-installer-21.01.0.tar.gz
    Resolving github.com (github.com)... 140.82.121.4
    Connecting to github.com (github.com)|140.82.121.4|:443... connected.
    HTTP request sent, awaiting response... 302 Found
    Location: https://github-releases.githubusercontent.com/77179634/0a63b600-6273-11eb-98df-3d542851f6ff?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210217%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210217T173945Z&X-Amz-Expires=300&X-Amz-Signature=58f26bcac7eeee64673a84d46696490acec357b97a651af42653f973b778ee88&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=77179634&response-content-disposition=attachment%3B%20filename%3Dtrident-installer-21.01.0.tar.gz&response-content-type=application%2Foctet-stream [following]
    --2021-02-17 12:40:43--  https://github-releases.githubusercontent.com/77179634/0a63b600-6273-11eb-98df-3d542851f6ff?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210217%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210217T173945Z&X-Amz-Expires=300&X-Amz-Signature=58f26bcac7eeee64673a84d46696490acec357b97a651af42653f973b778ee88&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=77179634&response-content-disposition=attachment%3B%20filename%3Dtrident-installer-21.01.0.tar.gz&response-content-type=application%2Foctet-stream
    Resolving github-releases.githubusercontent.com (github-releases.githubusercontent.com)... 185.199.111.154, 185.199.108.154, 185.199.109.154, ...
    Connecting to github-releases.githubusercontent.com (github-releases.githubusercontent.com)|185.199.111.154|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 38527217 (37M) [application/octet-stream]
    Saving to: ‘trident-installer-21.01.0.tar.gz’
    
    100%[==================================================================================================================>] 38,527,217  84.9MB/s   in 0.4s
    
    2021-02-17 12:40:44 (84.9 MB/s) - ‘trident-installer-21.01.0.tar.gz’ saved [38527217/38527217]
  2. ダウンロードしたバンドルから Trident のインストールを解凍します。

    ubuntu@gke-admin-ws-200915-151421:~$ tar -xf trident-installer-21.01.0.tar.gz
    ubuntu@gke-admin-ws-200915-151421:~$ cd trident-installer
  3. Trident にはこのファイルを渡すオプションがないため、まず、ユーザクラスタの「 kubeconfig 」ファイルの場所を環境変数として設定します。

    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ export KUBECONFIG=~/anthos-cluster01-kubeconfig
  4. 'trident-installer' ディレクトリには ' 必要なすべてのリソースを定義するマニフェストが含まれています適切なマニフェストを使用して、「 TridentOrchestrator 」カスタムリソース定義を作成します。

    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
    customresourcedefinition.apiextensions.k8s.io/tridentorchestrators.trident.netapp.io created
  5. Trident のネームスペースが存在しない場合は、指定されたマニフェストを使用してクラスタに作成します。

    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ kubectl apply -f deploy/namespace.yaml
    namespace/trident created
  6. トライデントオペレータの配備に必要なリソースを作成しますたとえば ' オペレータ用のサービスアカウント 'ClusterRole' および 'ClusterRoleBind' を 'ServiceAccount' 専用の 'PodSecurityPolicy' またはオペレータ自体に割り当てます

    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ kubectl create -f deploy/bundle.yaml
    serviceaccount/trident-operator created
    clusterrole.rbac.authorization.k8s.io/trident-operator created
    clusterrolebinding.rbac.authorization.k8s.io/trident-operator created
    deployment.apps/trident-operator created
    podsecuritypolicy.policy/tridentoperatorpods created
  7. 次のコマンドを使用すると、展開後にオペレータのステータスを確認できます。

    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ kubectl get deployment -n trident
    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    trident-operator   1/1     1            1           54s
    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ kubectl get pods -n trident
    NAME                                READY   STATUS    RESTARTS   AGE
    trident-operator-5c8bbf6754-h957z   1/1     Running   0          68s
  8. オペレータが導入したら、 Trident をインストールできます。これには 'TridentOrchestrator を作成する必要があります

    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ kubectl create -f deploy/crds/tridentorchestrator_cr.yaml
    tridentorchestrator.trident.netapp.io/trident created
    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ kubectl describe torc trident
    Name:         trident
    Namespace:
    Labels:       <none>
    Annotations:  <none>
    API Version:  trident.netapp.io/v1
    Kind:         TridentOrchestrator
    Metadata:
      Creation Timestamp:  2021-02-17T18:25:43Z
      Generation:          1
      Managed Fields:
        API Version:  trident.netapp.io/v1
        Fields Type:  FieldsV1
        fieldsV1:
          f:spec:
            .:
            f:debug:
            f:namespace:
        Manager:      kubectl
        Operation:    Update
        Time:         2021-02-17T18:25:43Z
        API Version:  trident.netapp.io/v1
        Fields Type:  FieldsV1
        fieldsV1:
          f:status:
            .:
            f:currentInstallationParams:
              .:
              f:IPv6:
              f:autosupportHostname:
              f:autosupportImage:
              f:autosupportProxy:
              f:autosupportSerialNumber:
              f:debug:
              f:enableNodePrep:
              f:imagePullSecrets:
              f:imageRegistry:
              f:k8sTimeout:
              f:kubeletDir:
              f:logFormat:
              f:silenceAutosupport:
              f:tridentImage:
            f:message:
            f:namespace:
            f:status:
            f:version:
        Manager:         trident-operator
        Operation:       Update
        Time:            2021-02-17T18:25:43Z
      Resource Version:  14836643
      Self Link:         /apis/trident.netapp.io/v1/tridentorchestrators/trident
      UID:               0e5f2c3b-6ca2-4b85-8453-0382e1426160
    Spec:
      Debug:      true
      Namespace:  trident
    Status:
      Current Installation Params:
        IPv6:
        Autosupport Hostname:
        Autosupport Image:
        Autosupport Proxy:
        Autosupport Serial Number:
        Debug:
        Enable Node Prep:
        Image Pull Secrets:         <nil>
        Image Registry:
        k8sTimeout:
        Kubelet Dir:
        Log Format:
        Silence Autosupport:
        Trident Image:
      Message:                      Installing Trident
      Namespace:                    trident
      Status:                       Installing
      Version:
    Events:
      Type    Reason      Age   From                        Message
      ----    ------      ----  ----                        -------
      Normal  Installing  23s   trident-operator.netapp.io  Installing Trident
      Normal  Installed   15s   trident-operator.netapp.io  Trident installed
  9. Trident が正しくインストールされていることを確認するには、ネームスペースで実行されているポッドを確認するか、 tridentctl バイナリを使用してインストールされているバージョンを確認します。

    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ kubectl get pod -n trident
    NAME                                READY   STATUS    RESTARTS   AGE
    trident-csi-2cp7x                   2/2     Running   0          4m16s
    trident-csi-2xr5h                   2/2     Running   0          4m16s
    trident-csi-bnwvh                   2/2     Running   0          4m16s
    trident-csi-d6cfc6bb-lxm2p          6/6     Running   0          4m16s
    trident-operator-5c8bbf6754-h957z   1/1     Running   0          8m55s
    
    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ ./tridentctl -n trident version
    +----------------+----------------+
    | SERVER VERSION | CLIENT VERSION |
    +----------------+----------------+
    | 21.01.1        | 21.01.1        |
    +----------------+----------------+
  10. Trident を NetApp HCI 解決策や Anthos と統合するための次のステップは、ストレージシステムとの通信を可能にするバックエンドを作成することです。ネットアップは、 Anthos 対応のパートナーストレージ検証プログラムを通じて、さまざまなプロトコルに対して検証済みです。このため、 NetApp Trident では、 ONTAP で使用されている ONTAP ストレージと Element ストレージの両方から、ネットアップの NetApp HCI プラットフォームと iSCSI 経由で NFS 環境の Anthos をサポートできます。

    注記 NetApp HCI プラットフォームは、デフォルトで NetApp Element ストレージを使用して導入されます。このガイドでは、このシステム専用のバックエンドを設定します。さらに、リモートの ONTAP ストレージシステムに接続することも、 ONTAP Select Software-Defined Storage システムを VMware vSphere の仮想アプライアンスとして導入することもでき、追加の NFS サービスと iSCSI サービスを提供できます。このガイドでは、これらの追加ストレージバックエンドの各構成については説明していません。
  11. ダウンロードしたインストールアーカイブのサンプルバックエンドファイルが、「 sample -input 」フォルダにあります。「 backend-solidfire.json 」を作業ディレクトリにコピーし、編集してストレージシステムの環境に関する情報を提供します。Element ベースの iSCSI 接続の場合は、「 backend-solidfire.json 」ファイルをコピーして編集します。

    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ cp sample-input/backend-solidfire.json ./
    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ $ vi backend-solidfire.json
    1. エンドポイントの行で、ユーザ、パスワード、および MVIP の値を編集します。

    2. SVIP 値を編集します。

       {
          "version": 1,
          "storageDriverName": "solidfire-san",
          "Endpoint": "https://trident:password@172.21.224.150/json-rpc/8.0",
          "SVIP": "10.63.172.100:3260",
          "TenantName": "trident",
          "Types": [{"Type": "Bronze", "Qos": {"minIOPS": 1000, "maxIOPS": 2000, "burstIOPS": 4000}},
                    {"Type": "Silver", "Qos": {"minIOPS": 4000, "maxIOPS": 6000, "burstIOPS": 8000}},
                    {"Type": "Gold", "Qos": {"minIOPS": 6000, "maxIOPS": 8000, "burstIOPS": 10000}}]
      }
  12. このバックエンドファイルを設定した状態で、次のコマンドを実行して最初のバックエンドを作成します。

    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ ./tridentctl -n trident create backend -f backend.json
    +-------------------+----------------+--------------------------------------+--------+---------+
    |    NAME           | STORAGE DRIVER |                 UUID                 | STATE  | VOLUMES |
    +-------------------+----------------+--------------------------------------+--------+---------+
    | solidfire-backend | solidfire-san  | a5f9e159-c8f4-4340-a13a-c615fef0f433 | online |       0 |
    +-------------------+----------------+--------------------------------------+--------+---------+
  13. バックエンドを作成したら、次にストレージクラスを作成する必要があります。バックエンドと同様に、 sample_inputs フォルダにある環境用に編集可能なサンプルのストレージクラスファイルがあります。作業ディレクトリにコピーし、作成したバックエンドを反映するために必要な編集を行います。

    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ cp sample-input/storage-class-csi.yaml.templ ./storage-class-basic.yaml
    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ vi storage-class-basic.yaml
  14. このファイルに対して行う必要がある唯一の編集は ' バックエンドタイプの値を ' 新しく作成されたバックエンドのストレージドライバの名前に定義することですまた、以降の手順で参照する必要がある name-field 値にも注意してください。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: basic-csi
    provisioner: csi.trident.netapp.io
    parameters:
      backendType: "solidfire-san"
  15. kubectl コマンドを実行して ' ストレージ・クラスを作成します

    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ kubectl create -f sample-input/storage-class-basic.yaml
  16. ストレージクラスを作成したら、最初の永続的ボリューム要求( PVC )を作成する必要があります。sample_inputs にもあるこのアクションを実行するために使用できるサンプルの 'pvc-basicy.yaml ファイルがありますこのファイルに対して行う必要がある唯一の編集は、 storageClassName フィールドが作成したものと一致するようにすることです。

    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ vi sample-input/pvc-basic.yaml
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: basic
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: basic-csi
  17. 'kubectl' コマンドを発行して 'PVC を作成します作成中の元のボリュームのサイズによっては作成にしばらく時間がかかることがあるため、作成が完了した時点でこのプロセスを監視できます。

    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ kubectl create -f sample-input/pvc-basic.yaml
    
    ubuntu@gke-admin-ws-200915-151421:~/trident-installer$ kubectl get pvc --watch
    NAME      STATUS    VOLUME                                     CAPACITY   ACCESS MODES  STORAGECLASS   AGE
    basic     Pending                                                                       basic          1s
    basic     Pending   pvc-2azg0d2c-b13e-12e6-8d5f-5342040d22bf   0                        basic          5s
    basic     Bound     pvc-2azg0d2c-b13e-12e6-8d5f-5342040d22bf   1Gi        RWO           basic          7s