クイックスタート: FUSE CSI ドライバを使用して Cloud Storage バケットにアクセスする
このクイックスタート ガイドでは、Google Kubernetes Engine(GKE)アプリケーション内から、ローカル ファイル システムのように Cloud Storage バケットにアクセスする方法について説明します。このクイックスタートでは、バケットをマウントする Pod を作成するためのKubernetes マニフェストを例示し、Pod のファイル システムを使用してバケットの内容を操作する方法を紹介します。
このページは、クラウド リソースのプロビジョニングと管理、ならびにワークロードのデプロイを行うデベロッパー、ストレージ スペシャリスト、その他のユーザーを対象としています。一般的なロールの詳細については、一般的な GKE ユーザー ロールとタスクをご覧ください。
このページを読む前に、Kubernetes と Cloud Storage FUSE CSI ドライバについて理解しておいてください。
このクイックスタートでは、GKE Autopilot モードを使用します。Standard モードを使用する場合は、GKEに Cloud Storage FUSE CSI ドライバを設定するをご覧ください。
始める前に
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
-
Enable the GKE and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Make sure that you have the following role or roles on the project: Kubernetes Engine Admin, Storage Admin, Service Account User
Check for the roles
-
In the Cloud de Confiance console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Cloud de Confiance console, go to the IAM page.
[IAM] に移動 - プロジェクトを選択します。
- [ アクセスを許可] をクリックします。
-
[新しいプリンシパル] フィールドに、ユーザー ID を入力します。 これは通常、Workforce Identity プール内のユーザーの ID です。詳細については、IAM ポリシーで Workforce プールユーザーを表すをご覧いただくか、管理者にお問い合わせください。
- [ロールを選択] リストでロールを選択します。
- 追加のロールを付与するには、 [別のロールを追加] をクリックして各ロールを追加します。
- [保存] をクリックします。
Cloud de Confiance コンソールで、[Autopilot クラスタの作成] ページに移動します。
[クラスタの基本] で、次の操作を行います。
[名前] フィールドに、クラスタの名前を入力します。
その他の設定はデフォルトのままにします。
クラスタを作成するには、[作成] をクリックします。
- Cloud de Confiance コンソールで Cloud Storage の [バケット] ページに移動します。
[ 作成] をクリックします。
[バケットの作成] ページの [始める] セクションで、次の操作を行います。
バケット名の要件を満たす、グローバルに一意のバケット名を入力します。
その他の設定はデフォルトのままにします。
バケットを作成するには、[作成] をクリックします。
- Cloud de Confiance コンソールで Cloud Storage の [バケット] ページに移動します。
バケットのリストで、作成したバケットの名前をクリックします。
バケットのオブジェクト タブで、次のいずれかを行います。
デスクトップまたはファイル マネージャーから Cloud de Confiance コンソールのメインペインにファイルをドラッグします。
「ファイルをアップロード」ボタンをクリックします。表示されたダイアログで、アップロードするファイルを選択し、[開く] をクリックします。
Pod をデプロイするデフォルト プロジェクトを設定します。
gcloud config set project PROJECT_IDPROJECT_IDは、実際のプロジェクト ID に置き換えます。次の内容で Pod マニフェストを作成して適用します。
cat << EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: gcsfuse-test namespace: default annotations: gke-gcsfuse/volumes: "true" spec: terminationGracePeriodSeconds: 60 containers: - image: busybox name: busybox command: ["sleep"] args: ["infinity"] volumeMounts: - name: gcsfuse-test mountPath: /data readOnly: true serviceAccountName: default volumes: - name: gcsfuse-test csi: driver: gcsfuse.csi.storage.gke.io volumeAttributes: bucketName: BUCKET_NAME mountOptions: "implicit-dirs" EOFBUCKET_NAMEは、Cloud Storage バケット名で置き換えます。- 別の名前空間またはサービス アカウントを使用している場合は、
namespaceフィールドとserviceAccountNameフィールドを適宜置き換えます。
このマニフェストのコンテンツは、バケットを
/dataパスにマウントするgcsfuse-testという Pod を開始します。Pod が実行されていることを確認するには、次のコマンドを使用します。
kubectl get pod gcsfuse-test出力は次のようになります。
NAME READY STATUS RESTARTS AGE gcsfuse-test 2/2 Running 0 12sCloud Storage FUSE CSI ドライバは、Pod にサイドカー コンテナを接続して、Cloud Storage とのやり取りを管理します。
Pod が実行されていない場合は、
kubectl describe pod gcsfuse-testコマンドを実行してイベントログを取得し、問題の診断に役立てることができます。詳細については、GitHub のトラブルシューティングをご覧ください。Pod が実行されたら、ファイル システムを調べることができます。
kubectl exec -it gcsfuse-test -- find /data
GKE Autopilot クラスタを作成する
Cloud Storage バケットを作成する
Cloud Storage バケットにオブジェクトをアップロードする
Cloud Storage バケットへのアクセスを構成する
GKE クラスタから Cloud Storage バケットにアクセスできるようにするには、Cloud Storage バケットへのアクセスを構成するの手順に沿って操作します。
Cloud Shell を設定する
In the Cloud de Confiance console, activate Cloud Shell.
Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。セッションが初期化されるまで数秒かかることがあります。
FUSE を使用して Cloud Storage バケットにアクセスする Pod をデプロイする
クリーンアップ
このチュートリアルで使用したリソースについて、 Cloud de Confiance by S3NS アカウントに課金されないようにするには、Pod を削除します。
kubectl delete pod gcsfuse-test次のステップ
-