このページでは、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 リソースの詳細については、コンテナの永続ストレージをご覧ください。
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オブジェクトの名前。
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 60sPVC を使用するようにコンテナ ワークロードを構成します。次に、
standard-rwoPVC を使用するnginxPod の例を示します。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 EOFPVC_NAMEは、作成した PVC に置き換えます。
ボリューム容量を拡張する
PersistentVolumeClaim オブジェクトの容量を増やすには、spec.resources.storage フィールドを新しい容量に更新します。サポートされている最大ボリューム サイズは 14.5 Ti です。
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など)。
クラスタ内の更新された PV のステータスを確認します。
kubectl get pv --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG