永続ストレージにアクセスする

Google Distributed Cloud(GDC)エアギャップ アプライアンスの永続ストレージを使用すると、Pod のライフサイクルとは無関係にコンテナデータを保持できます。PersistentVolumeClaim(PVC)リソースを使用してボリュームを要求し、容量を拡張して、再起動や再スケジューリングをまたいで状態を保持できます。

このドキュメントは、組織のワークロードを作成するアプリケーション オペレーター グループのデベロッパーを対象としています。

始める前に

このドキュメントのタスクを完了するには、必要な権限をリクエストして環境を準備する必要があります。

IAM ロールをリクエストする

Kubernetes クラスタで永続ボリュームを作成、削除、編集、表示するには、組織の IAM 管理者に名前空間管理者(namespace-admin)ロールを付与するよう依頼してください。このロールはプロジェクトの名前空間にバインドされます。

環境を準備する

事前構成されたベアメタル Kubernetes クラスタに対してコマンドを実行するには、次のリソースがあることを確認してください。

  1. Kubernetes クラスタ名を確認するか、プラットフォーム管理者にクラスタ名を確認します。

  2. Kubernetes クラスタの kubeconfig ファイルがない場合は、ログインして生成します。

  3. これらの手順では、Kubernetes クラスタの kubeconfig パスを使用して CLUSTER_KUBECONFIG を置き換えます。

永続ボリュームを作成する

次の手順では、GDC standard-rwo StorageClass を使用してボリュームを作成する方法について説明します。GDC で使用可能な StorageClass リソースの詳細については、コンテナの永続ストレージをご覧ください。

  1. PersistentVolumeClaim を作成し、ReadWriteOnce アクセスモードと standard-rwo ストレージ クラスで構成します。

    kubectl --kubeconfig CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: PVC_NAME
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: standard-rwo
    EOF
    

    次のように置き換えます。

    • CLUSTER_KUBECONFIG: Kubernetes クラスタの kubeconfig ファイル。

    • NAMESPACE: PVC を作成するプロジェクトの名前空間。

    • PVC_NAME: PersistentVolumeClaim オブジェクトの名前。

  2. PersistentVolume(PV)オブジェクトは動的にプロビジョニングされます。Kubernetes クラスタ内の新しい PV のステータスを確認します。

    kubectl get pv --kubeconfig CLUSTER_KUBECONFIG
    

    出力は次のようになります。

    NAME       CAPACITY   ACCESS MODES   STATUS      CLAIM     STORAGECLASS   AGE
    pvc-uuidd  10Gi       RWO            Bound       pvc-name  standard-rwo   60s
    
  3. PVC を使用するようにコンテナ ワークロードを構成します。次の例は、standard-rwo PVC を使用する nginx Pod の例です。

    kubectl --kubeconfig CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: apps/v1
    kind: Pod
    metadata:
      name: web-server-deployment
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        volumeMounts:
        - mountPath: /usr/share/nginx/html
          name: data
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: PVC_NAME
    EOF
    

    PVC_NAME は、作成した PVC に置き換えます。

ボリューム容量を拡張する

PersistentVolumeClaim オブジェクトの容量を増やすには、spec.resources.storage フィールドを新しい容量に更新します。サポートされている最大ボリューム サイズは 14.5 Ti です。

  1. PersistentVolumeClaim オブジェクトのマニフェスト ファイルで、ボリュームをより大きなサイズに更新します。

    kubectl --kubeconfig CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: PVC_NAME
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: VOLUME_STORAGE_SIZE
    EOF
    

    次のように置き換えます。

    • CLUSTER_KUBECONFIG: Kubernetes クラスタの kubeconfig ファイル。

    • NAMESPACE: PVC リソースが存在するプロジェクトの名前空間。

    • PVC_NAME: ストレージ サイズを増やす PVC の名前。

    • VOLUME_SNAPSHOT_SIZE: 増やすストレージ サイズ(50Gi など)。

  2. クラスタ内の更新された PV のステータスを確認します。

    kubectl get pv --kubeconfig CLUSTER_KUBECONFIG
    

次のステップ