Menu Close
Settings Close

Language and Page Formatting Options

ストレージ

OpenShift Dedicated 4

OpenShift Dedicated クラスターのストレージの設定

概要

本書では、OpenShift Dedicated クラスターのストレージを設定する方法について説明します。

第1章 永続ストレージ

1.1. OpenShift Dedicated の AWS EFS の設定

Amazon Web Services Elastic File System(AWS EFS)は、OpenShift Dedicated クラスターにプロビジョニングできる Network File System(NFS)です。AWS は、Kubernetes ワークロードがこの共有ファイルストレージを活用できるようにする Kubernetes で使用する CSI EFS ドライバーも提供し、サポートしています。

本書では、OpenShift Dedicated で使用される EFS を準備するために AWS アカウントを設定するために必要な基本的な手順を説明します。AWS EFSの詳細は、AWS EFSのドキュメント を参照してください。

重要

Red Hat は、バックアップや復元を含む、この機能に対する正式なサポートを提供しません。お客様は EFS データのバックアップを作成し、停止またはデータ損失が発生したときに復元します。

クラスターで EFS を有効にする高レベルのプロセスは、以下のとおりです。

  1. クラスターで使用される AWS アカウントに AWS EFS を作成します。
  2. OperatorHub から AWS EFS Operatorをインストールします。
  3. SharedVolume カスタムリソースを作成します。
  4. Pod の spec.volumes で生成された Persistent Volume Claim(永続ボリューム要求、PVC)を使用します。

1.1.1. 前提条件

  • OpenShift Dedicated クラスターの Customer Cloud Subscription(CCS)
  • そのクラスターの AWS アカウントへの管理者アクセス

1.1.2. AWS アカウントの設定

OpenShift Dedicated で使用する AWS EFS を準備するために AWS アカウントを設定します。

手順

  1. AWS EC2 コンソール にログインします。
  2. クラスターリージョンに一致するリージョンを選択します。
  3. ワーカー EC2 インスタンスのみをフィルターし、インスタンスを選択します。VPC ID およびセキュリティーグループ ID を書き留めます。これらの値は、プロセスの後半に必要です。
  4. Security タブをクリックし、Security Group Name をクリックします。
  5. Actions ドロップダウンメニューから、Edit Inbound Rules をクリックします。下にスクロールし、Add Rule をクリックします。
  6. VPC プライベート CIDR から NFS トラフィックを許可する NFS ルールを追加します。
  7. Amazon EFS ページ を開きます。EFS を作成するには、Create file system をクリックします。
  8. Customize をクリックし、ウィザードに進みます。

    1. Step 2: で、ネットワークアクセスを設定します。

      1. 書き留めておいたクラスターの VPC をクリックします。
      2. プライベートサブネットが選択されていることを確認します。
      3. EC2 ワーカーインスタンス用に以前に書き留めた Security Group Name を選択します。
      4. Next をクリックします。
    2. Step 3: で、クライアントアクセスを設定します。

      1. Add access point をクリックします。
      2. /access_point_1 などの一意のパスを入力します。
      3. ワーカー Pod への書き込みアクセスを許可する所有権またはパーミッションで Owner フィールドを設定します。たとえば、ワーカー Pod をグループ ID 100 で実行される場合、その ID を Owner Group ID として設定し、パーミッションに g+rwx が含まれるようにします。
  9. ウィザードの手順を実行し、ファイルシステムの作成 をクリックします。
  10. ファイルシステムの作成後:

    1. 後で使用できるようにファイルシステム ID を書き留めます。
    2. Manage client access をクリックし、アクセスポイント ID を書き留めます。

ステップ 5 ~ 10 を使用してさらに NFS ルールを追加して、別の共有データストアを作成できます。それぞれのケースで、対応するファイルシステム ID とアクセスポイント ID を書き留めます。

1.1.3. EFS Operatorのインストール

手順

  1. クラスターの OpenShift Web UI にログインします。
  2. OperatorsOperatorHub をクリックします。
  3. AWS EFS Operatorを検索し、選択します。Install をクリックします。
  4. デフォルト設定を受け入れ、Subscribe をクリックします。

1.1.4. コンソールを使用した SharedVolume リソースの作成

ファイルシステムとアクセスポイントのペアごとに 1 つの SharedVolume リソースを作成する必要があります。このペアは、Pod がこれにアクセスする各プロジェクトに作成します。

手順

  1. OpenShift Web コンソールで、プロジェクトを作成し、これに移動します。
  2. OperatorsInstalled Operators をクリックします。AWS EFS Operatorのエントリーを見つけ、Provided APIs の下にある SharedVolume をクリックします。
  3. Create SharedVolume をクリックします。
  4. サンプル YAML を編集します。

    1. name に適切な値を入力します。
    2. accessPointID および fileSystemID の値は、先に作成した EFS リソースの値に置き換えてください。

        apiVersion: aws-efs.managed.openshift.io/v1alpha1
        kind: SharedVolume
        metadata:
          name: sv1
          namespace: efsop2
        spec:
          accessPointID: fsap-0123456789abcdef
          fileSystemID: fs-0123cdef
  5. Create をクリックします。

    SharedVolume リソースが作成され、AWS EFS Operator がトリガーされて、PersistentVolume:PersistentVolumeClaim ペアが生成され、指定されたEFSアクセスポイントに関連付けられます。

  6. 永続ボリューム要求 (PVC) が存在し、バインドされていることを確認するには、StoragePersistent Volume Claims をクリックします。

    PVC 名は pvc-<shared_volume_name> です。関連付けられた PV 名は pv-<project_name>-<shared_volume_name> です。

1.1.5. CLI を使用した SharedVolume リソースの作成

ファイルシステムとアクセスポイントのペアごとに 1 つの SharedVolume リソースを作成する必要があります。このペアは、Pod がこれにアクセスする各プロジェクトに作成します。YAML または JSON 定義を入力するか、またはファイルをエディターにドラッグアンドドロップして、SharedVolume を手動で作成できます。

手順

  1. oc CLI を使用して、先に作成した EFS リソースから accessPointID および fileSystemID 値を使用して YAML ファイルを作成します。

      apiVersion: aws-efs.managed.openshift.io/v1alpha1
      kind: SharedVolume
      metadata:
        name: sv1
        namespace: efsop2
      spec:
        accessPointID: fsap-0123456789abcdef
        fileSystemID: fs-0123cdef
  2. 以下のコマンドを使用して、ファイルをクラスターに適用します。

    $ oc apply -f <filename>.yaml

    SharedVolume リソースが作成され、AWS EFS Operator がトリガーされて、PersistentVolume:PersistentVolumeClaim ペアが生成され、指定されたEFSアクセスポイントに関連付けられます。

  3. PVC が存在し、バインドされていることを確認するには、Storage > Persistent Volume Claims に移動します。

    PVC 名は pvc-{shared_volume_name} です。関連付けられた PV 名は pv-{project_name}-{shared_volume_name} です。

1.1.6. Pod の接続

プロジェクトで作成された永続ボリューム要求(PVC)を使用する準備が整いました。このサンプル Pod を作成してこの PVC をテストできます。

手順

  1. プロジェクトを作成し、これに移動します。
  2. WorkloadsPodsCreate Pod をクリックします。
  3. YAML 情報を入力します。PersistentVolumeClaim オブジェクトの名前を .spec.volumes[].persistentVolumeClaim.claimName で使用します。

    apiVersion: v1
    kind: Pod
    metadata:
     name: test-efs
    spec:
     volumes:
       - name: efs-storage-vol
         persistentVolumeClaim:
           claimName: pvc-sv1
     containers:
       - name: test-efs
         image: centos:latest
         command: [ "/bin/bash", "-c", "--" ]
         args: [ "while true; do touch /mnt/efs-data/verify-efs && echo 'hello efs' && sleep 30; done;" ]
         volumeMounts:
           - mountPath: "/mnt/efs-data"
             name: efs-storage-vol

  4. Pod の作成後に、WorkloadsPodsLogs をクリックし、Pod のログを確認します。

1.1.7. EFS Operatorのアンインストール

手順

Operator をクラスターから削除するには、以下を実行します。

  1. Operator によって生成された Persistent Volume Claim(永続ボリューム要求、PVC)を使用してすべてのワークロードを削除します。
  2. すべての namespace から共有ボリュームをすべて削除します。Operator は関連付けられた永続ボリュームおよび永続ボリューム要求を自動的に削除します。
  3. Operator をアンインストールします。

    1. OperatorsInstalled Operators をクリックします。
    2. AWS EFS Operatorのエントリーを見つけ、Operator の右側のメニューボタンをクリックします。
    3. Uninstall をクリックし、削除を確定します。
  4. 共有ボリューム CRD を削除します。このアクションは、残りの Operator 所有リソースの削除をトリガーします。