5.6. Google Compute Platform Filestore CSI ドライバーオペレーター


5.6.1. 概要

OpenShift Dedicated は、Google Compute Platform (GCP) Filestore Storage の Container Storage Interface (CSI) ドライバーを使用して永続ボリューム (PV) をプロビジョニングできます。

CSI Operator およびドライバーを使用する場合は、永続ストレージ および CSI ボリュームの設定 を理解しておくことが推奨されます。

GCP Filestore Storage アセットにマウントする CSI プロビジョニング PV を作成するには、GCP Filestore CSI Driver Operator と GCP Filestore CSI ドライバーを openshift-cluster-csi-drivers namespace にインストールします。

  • GCP Filestore CSI Driver Operator は、デフォルトではストレージクラスを提供しませんが、必要に応じて作成 できます。GCP Filestore CSI Driver Operator は、ストレージボリュームをオンデマンドで作成できるようにすることで動的なボリュームプロビジョニングをサポートし、クラスター管理者がストレージを事前にプロビジョニングする必要がなくなります。
  • GCP Filestore CSI ドライバー を使用すると、GCP Filestore PV を作成してマウントできます。

OpenShift Dedicated GCP Filestore は Workload Identity をサポートします。これにより、ユーザーはサービスアカウントキーの代わりにフェデレーションアイデンティティーを使用して Google Cloud リソースにアクセスできます。GCP Workload Identity はインストール中にグローバルに有効にしてから、GCP Filestore CSI Driver Operator 用に設定する必要があります。詳細は、GCP Filestore CSI Driver Operator のインストール を参照してください。

5.6.2. CSI について

ストレージベンダーはこれまで Kubernetes の一部としてストレージドライバーを提供してきました。Container Storage Interface (CSI) の実装では、サードパーティーのプロバイダーは、コア Kubernetes コードを変更せずに標準のインターフェイスを使用してストレージプラグインを提供できます。

CSI Operator は、in-tree ボリュームプラグインでは不可能なボリュームスナップショットなどのストレージオプションを OpenShift Dedicated ユーザーに付与します。

5.6.3. GCP Filestore CSI Driver Operator のインストール

5.6.3.1. Workload Identity を使用して GCP Filestore CSI Driver Operator をインストールする準備

GCP Workload Identity を Google Compute Platform Filestore と共に使用する予定の場合は、GCP Filestore Container Storage Interface (CSI) Driver Operator のインストール中に使用する特定のパラメーターを取得する必要があります。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。

手順

Workload Identity を使用して GCP Filestore CSI ドライバー Operator をインストールする準備をします。

  1. プロジェクト番号を取得します。

    1. 以下のコマンドを実行してプロジェクト ID を取得します。

      $ export PROJECT_ID=$(oc get infrastructure/cluster -o jsonpath='{.status.platformStatus.gcp.projectID}')
      Copy to Clipboard Toggle word wrap
    2. 以下のコマンドを実行し、プロジェクト ID を使用してプロジェクト番号を取得します。

      $ gcloud projects describe $PROJECT_ID --format="value(projectNumber)"
      Copy to Clipboard Toggle word wrap
  2. ID プール ID とプロバイダー ID を検索します。

    クラスターのインストール中に、これらのリソースの名前は、--name parameter を使用して Cloud Credential Operator ユーティリティー (ccoctl) に渡されます。「Cloud Credential Operator ユーティリティーを使用した GCP リソースの作成」を参照してください。

  3. GCP Filestore Operator の Workload Identity リソースを作成します。

    1. 次のサンプルファイルを使用して CredentialsRequest ファイルを作成します。

      Credentials Request YAML ファイルの例

      apiVersion: cloudcredential.openshift.io/v1
      kind: CredentialsRequest
      metadata:
        name: openshift-gcp-filestore-csi-driver-operator
        namespace: openshift-cloud-credential-operator
        annotations:
          include.release.openshift.io/self-managed-high-availability: "true"
          include.release.openshift.io/single-node-developer: "true"
      spec:
        serviceAccountNames:
        - gcp-filestore-csi-driver-operator
        - gcp-filestore-csi-driver-controller-sa
        secretRef:
          name: gcp-filestore-cloud-credentials
          namespace: openshift-cluster-csi-drivers
        providerSpec:
          apiVersion: cloudcredential.openshift.io/v1
      	kind: GCPProviderSpec
          predefinedRoles:
          - roles/file.editor
          - roles/resourcemanager.tagUser
          skipServiceCheck: true
      Copy to Clipboard Toggle word wrap

    2. 次のコマンドを実行し、CredentialsRequest ファイルを使用して GCP サービスアカウントを作成します。

      $ ./ccoctl gcp create-service-accounts --name=<filestore-service-account> \
      1
      
        --workload-identity-pool=<workload-identity-pool> \
      2
      
        --workload-identity-provider=<workload-identity-provider> \
      3
      
        --project=<project-id> \
      4
      
        --credentials-requests-dir=/tmp/credreq 
      5
      Copy to Clipboard Toggle word wrap
      1
      <filestore-service-account> は、ユーザーが選択した名前です。
      2
      <workload-identity-pool> は、上記のステップ 2 から取得されます。
      3
      <workload-identity-provider> は、上記のステップ 2 から取得されます。
      4
      <project-id> は上記のステップ 1.a から取得されます。
      5
      CredentialsRequest ファイルが存在するディレクトリーの名前。

      出力例

      2025/02/10 17:47:39 Credentials loaded from gcloud CLI defaults
      2025/02/10 17:47:42 IAM service account filestore-service-account-openshift-gcp-filestore-csi-driver-operator created
      2025/02/10 17:47:44 Unable to add predefined roles to IAM service account, retrying...
      2025/02/10 17:47:59 Updated policy bindings for IAM service account filestore-service-account-openshift-gcp-filestore-csi-driver-operator
      2025/02/10 17:47:59 Saved credentials configuration to: /tmp/install-dir/ 
      1
      
      openshift-cluster-csi-drivers-gcp-filestore-cloud-credentials-credentials.yaml
      Copy to Clipboard Toggle word wrap

      1
      現在のディレクトリー。
    3. 次のコマンドを実行して、新しく作成されたサービスアカウントのサービスアカウントメールを見つけます。

      $ cat /tmp/install-dir/manifests/openshift-cluster-csi-drivers-gcp-filestore-cloud-credentials-credentials.yaml | yq '.data["service_account.json"]' | base64 -d | jq '.service_account_impersonation_url'
      Copy to Clipboard Toggle word wrap

      出力例

      https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/filestore-se-openshift-g-ch8cm@openshift-gce-devel.iam.gserviceaccount.com:generateAccessToken
      Copy to Clipboard Toggle word wrap

      この出力例では、サービスアカウントのメールは filestore-se-openshift-g-ch8cm@openshift-gce-devel.iam.gserviceaccount.com です。

結果

これで、GCP Filestore CSI Driver Operator をインストールするために必要な次のパラメーターが揃いました。

  • プロジェクト番号 - ステップ 1.b
  • プール ID - ステップ 2
  • プロバイダー ID - ステップ 2
  • サービスアカウントのメール - ステップ 3.c

5.6.3.2. GCP Filestore CSI Driver Operator のインストール

デフォルトでは、Google Compute Platform (GCP) の Filestore Container Storage Interface (CSI) Driver Operator は OpenShift Dedicated にインストールされません。次の手順を使用して、GCP Filestore CSI Driver Operator をクラスターにインストールします。

前提条件

  • OpenShift Dedicated Web コンソールへアクセスできる。
  • GCP Workload Identity を使用する場合は、GCP Workload Identity の特定のパラメーターがある。前述のセクション Workload Identity を使用して GCP Filestore CSI Driver Operator をインストールする準備 を参照してください。

手順

ウェブコンソールから GCP Filestore CSI Driver Operator をインストールするには、以下を行います。

  1. OpenShift Cluster Manager にログインします。
  2. クラスターを選択します。
  3. Open console をクリックし、認証情報を使用してログインします。
  4. 次のコマンドを実行して、GCE プロジェクトで Filestore API を有効にします。

    $ gcloud services enable file.googleapis.com  --project <my_gce_project> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <my_gce_project> を Google Cloud プロジェクトに置き換えます。

    これは、Google Cloud Web コンソールを使用して行うこともできます。

  5. GCP Filestore CSI Operator をインストールします。

    1. Operators OperatorHub をクリックします。
    2. フィルターボックスに GCP Filestore と入力して、GCP Filestore CSI Operator を見つけます。
    3. GCP Filestore CSI Driver Operator ボタンをクリックします。
    4. GCP Filestore CSI Driver Operator ページで、Install をクリックします。
    5. Install Operator のページで、以下のことを確認してください。

      • All namespaces on the cluster (default) が選択されている。
      • Installed Namespaceopenshift-cluster-csi-drivers に設定されている。

        GCP Workload Identity を使用する場合は、セクション ワークロードアイデンティティーを使用した GCP Filestore CSI ドライバー Operator のインストールの準備 の手順で取得した次のフィールドの値を入力します。

      • GCP Project Number
      • GCP Pool ID
      • GCP Provider ID
      • GCP Service Account Email
    6. Install をクリックします。

      インストールが完了すると、GCP Filestore CSI Operator が Web コンソールの Installed Operator セクションに表示されます。

  6. GCP Filestore CSI ドライバーをインストールします。

    1. administration CustomResourceDefinitions ClusterCSIDriver をクリックします。
    2. Instances タブで Create ClusterCSIDriver をクリックします。

      以下の YAML ファイルを使用します。

      apiVersion: operator.openshift.io/v1
      kind: ClusterCSIDriver
      metadata:
          name: filestore.csi.storage.gke.io
      spec:
        managementState: Managed
      Copy to Clipboard Toggle word wrap
    3. Create をクリックします。
    4. 以下の条件が "true" に変わるのを待ちます。

      • GCPFilestoreDriverCredentialsRequestControllerAvailable
      • GCPFilestoreDriverNodeServiceControllerAvailable
      • GCPFilestoreDriverControllerServiceControllerAvailable

5.6.4. GCP Filestore Storage のストレージクラスの作成

Operator をインストールしたら、Google Compute Platform (GCP) Filestore ボリュームの動的プロビジョニング用のストレージクラスを作成する必要があります。

前提条件

  • 実行中の OpenShift Dedicated クラスターにログインしている。

手順

ストレージクラスを作成するには、以下を行います。

  1. 次のサンプル YAML ファイルを使用してストレージクラスを作成します。

    サンプル YAML ファイル

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: filestore-csi
    provisioner: filestore.csi.storage.gke.io
    parameters:
      connect-mode: DIRECT_PEERING 
    1
    
      network: network-name 
    2
    
    allowVolumeExpansion: true
    volumeBindingMode: WaitForFirstConsumer
    Copy to Clipboard Toggle word wrap

    1
    共有 VPC の場合は、connect-mode パラメーターを PRIVATE_SERVICE_ACCESS に設定して使用します。非共有 VPC の場合、この値はデフォルト設定の DIRECT_PEERING になります。
    2
    Filestore インスタンスを作成する GCP Virtual Private Cloud (VPC) ネットワークの名前を指定します。
  2. Filestore インスタンスを作成する VPC ネットワークの名前を指定します。

    Filestore インスタンスを作成する VPC ネットワークを指定することを推奨します。VPC ネットワークが指定されていないと、Container Storage Interface (CSI) ドライバーは、プロジェクトのデフォルト VPC ネットワークにインスタンスを作成しようとします。

    IPI インストールでは、VPC ネットワーク名は通常、クラスター名に接尾辞 "-network" を付けたものです。ただし、UPI インストールでは、VPC ネットワーク名はユーザーが選択した任意の値にすることができます。

    共有 VPC (connect-mode = PRIVATE_SERVICE_ACCESS) の場合、ネットワークは完全な VPC 名である必要があります。たとえば projects/shared-vpc-name/global/networks/gcp-filestore-network です。

    次のコマンドを使用して MachineSets オブジェクトを調べると、VPC ネットワーク名を確認できます。

    $ oc -n openshift-machine-api get machinesets -o yaml | grep "network:"
                - network: gcp-filestore-network
    (...)
    Copy to Clipboard Toggle word wrap

    この例では、このクラスターの VPC ネットワーク名は "gcp-filestore-network" です。

5.6.5. NFS エクスポートオプション

デフォルトでは、Filestore インスタンスは、同じ Google Cloud プロジェクトと Virtual Private Cloud (VPC) ネットワークを共有するすべてのクライアントにルートレベルの読み取り/書き込みアクセス権を付与します。ネットワークファイルシステム (NFS) エクスポートオプションを使用すると、Filestore インスタンスの特定の IP 範囲と特定のユーザー/グループ ID へのアクセスを制限できます。ストレージクラスを作成するときに、nfs-export-options-on-create パラメーターを使用して、これらのオプションを設定できます。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • GCP Filestore CSI Driver Operator と GCP Filestore CSI ドライバーがインストールされている。

手順

  1. 次のサンプル YAML ファイルのようなファイルを使用してストレージクラスを作成します。

    注記

    ストレージクラスの作成の詳細は、GCP Filestore Operator のストレージクラスの作成 セクションを参照してください。

    NFS エクスポートオプションが含まれるストレージクラス YAML ファイルの例

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
     name: SC-name
    provisioner: filestore.csi.storage.gke.io
    parameters:
     connect-mode: DIRECT_PEERING
     network: project-network
     nfs-export-options-on-create: '[ 
    1
    
       {
         "accessMode": "READ_WRITE", 
    2
    
         "squashMode": "NO_ROOT_SQUASH", 
    3
    
         "anonUid": 65534 
    4
    
         "anonGid": 65534 
    5
    
         "ipRanges": [ 
    6
    
           "10.0.0.0/16"
         ]
       }]'
    allowVolumeExpansion: true
    Copy to Clipboard Toggle word wrap

    1
    NFS エクスポートオプションパラメーター
    2
    Access mode: エクスポートされたディレクトリーに対する読み取り要求のみを許可する READ_ONLY、または読み取り要求と書き込み要求の両方を許可する READ_WRITE のいずれか。デフォルトは READ_WRITE です。
    3
    Squash mode: エクスポートされたディレクトリーでのルートアクセスを許可する NO_ROOT_SQUASH、またはルートアクセスを許可しない ROOT_SQUASH のいずれか。デフォルトは NO_ROOT_SQUASH です。
    4
    AnonUid: 匿名ユーザー ID を表す整数。デフォルト値は 65534 です。AnonUid は、squashModeROOT_SQUASH に設定した場合にのみ設定できます。それ以外の場合は、エラーが発生します。
    5
    AnonGid: 匿名グループ ID を表す整数。デフォルト値は 65534 です。AnonGid は、squashModeROOT_SQUASH に設定されている場合にのみ設定できます。それ以外の場合は、エラーが発生します。
    6
    IP ranges: ファイル共有をマウントできる、{octet1}.{octet2}.{octet3}.{octet4} 形式の IPv4 アドレスのリスト、または {octet1}.{octet2}.{octet3}.{octet4}/{mask size} 形式の CIDR 範囲のリスト。NfsExportOptions 内および NfsExportOptions 間で重複する IP 範囲は許可されません。許可されない場合、エラーが返されます。すべての NFS エクスポートオプションで、FileShareConfig ごとの IP 範囲またはアドレスは 64 個に制限されています。

5.6.6. クラスターと GCP Filestore の破棄

通常、クラスターを破棄すると、OpenShift Dedicated インストーラーはそのクラスターに属するすべてのクラウドリソースを削除します。ただし、Google Compute Platform (GCP) Filestore リソースの特殊な性質により、自動クリーンアッププロセスでは、すべてのリソースが削除されない場合がまれに発生します。

したがって、Red Hat では、アンインストールプロセスによってクラスター所有のすべての Filestore リソースが削除済みであることを確認するよう推奨しています。

手順

すべての GCP Filestore PVC が削除済みであるこを確認するには、以下を実行します。

  1. GUI または CLI を使用して Google Cloud アカウントにアクセスします。
  2. kubernetes-io-cluster-${CLUSTER_ID}=owned ラベルを持つリソースを検索します。

    クラスター ID は削除されたクラスターに固有であるため、そのクラスター ID を持つリソースは残っていないはずです。

  3. 万が一リソースが残っている場合は、削除してください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat