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

このページでは、Google Distributed Cloud(GDC)エアギャップ ソブリン ユニバースでコンテナ ワークロードの永続ストレージを作成して管理する方法について説明します。永続ストレージは、ワークロードのスケジュール場所に関係なく、アプリケーションに一貫した ID と安定したホスト名を提供します。

このページは、組織のアプリケーション ワークロードの作成を担当するアプリケーション オペレーター グループ内のデベロッパーを対象としています。詳細については、GDC エアギャップ ドキュメントの対象ユーザーをご覧ください。

始める前に

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

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

永続ストレージにアクセスするために必要な権限を取得するには、特定のロールが必要です。必要なロールは、組織スコープの共有クラスタとプロジェクト スコープの標準クラスタのどちらで作業しているかによって異なります。詳細については、Kubernetes クラスタの構成をご覧ください。

共有クラスタロール

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

標準クラスタロール

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

環境を準備する

API を使用して Kubernetes クラスタに対してコマンドを実行するには、次のリソースがあることを確認してください。

  • Kubernetes クラスタ名を確認するか、プラットフォーム管理者グループのメンバーにクラスタ名を確認します。

  • Kubernetes クラスタの kubeconfig ファイルにログインして生成します。

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

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

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

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

    kubectl --kubeconfig KUBERNETES_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
    

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

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

    • NAMESPACE: PVC を作成する Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合、任意の Namespace を指定できます。

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

  2. PVC オブジェクトが使用可能であることを確認します。

    kubectl get pvc --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE
    

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

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

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: 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 KUBERNETES_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
    

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

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

    • NAMESPACE: PVC リソースが存在する Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合は、任意の Namespace を指定できます。

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

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

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

    kubectl get pv --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
    

次のステップ