このページでは、コンテナ アプリケーションの特定の時点でのストレージ ボリュームのコピー(スナップショット)を作成する方法について説明します。ボリューム スナップショットを使用すると、ボリュームを以前の状態に戻したり、新しいボリュームをプロビジョニングしたりできます。
このページは、組織のアプリケーション ワークロードの作成を担当するアプリケーション オペレーター グループ内のデベロッパーを対象としています。詳細については、GDC エアギャップの対象読者に関するドキュメントをご覧ください。
始める前に
Kubernetes クラスタに対してコマンドを実行するには、次のリソースがあることを確認してください。
Kubernetes クラスタ名を確認するか、プラットフォーム管理者にクラスタ名を確認します。
まだ Kubernetes クラスタの kubeconfig ファイルがない場合は、ログインして生成します。
これらの手順では、Kubernetes クラスタの kubeconfig パスを使用して
KUBERNETES_CLUSTER_KUBECONFIG
を置き換えます。
ボリューム スナップショットの管理に必要な権限を取得するには、組織の IAM 管理者に、プロジェクトの Namespace で Namespace 管理者ロール(namespace-admin
)を付与するよう依頼してください。
ボリューム スナップショットを作成する
PersistentVolumeClaim
オブジェクトのスナップショットを取得するには、VolumeSnapshot
オブジェクトを作成します。システムではデータの整合性は保証されません。スナップショットを取得する前に、アプリケーションを一時停止してデータをフラッシュします。
VolumeSnapshot
カスタム リソースを作成します。kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \ --namespace NAMESPACE apply -f - <<EOF apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshot metadata: name: VOLUME_SNAPSHOT_NAME spec: source: persistentVolumeClaimName: PVC_NAME EOF
次のように置き換えます。
KUBERNETES_CLUSTER_KUBECONFIG
: クラスタの kubeconfig ファイル。NAMESPACE
: ボリューム スナップショットを作成するプロジェクトの Namespace。VOLUME_SNAPSHOT_NAME
:VolumeSnapshot
オブジェクト名。PVC_NAME
: スナップショットを作成する PVC の名前。
.status.readyToUse
フィールドがtrue
になると、スナップショット オペレーションは完了します。次のコマンドを使用して、ステータスを確認できます。kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG get volumesnapshot \ -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'
データソースとして指定されたボリューム スナップショットを使用して PVC マニフェストを更新します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \ --namespace NAMESPACE apply -f - <<EOF apiVersion: v1 kind: PersistentVolumeClaim metadata: name: PVC_NAME spec: dataSource: name: VOLUME_SNAPSHOT_NAME kind: VolumeSnapshot apiGroup: snapshot.storage.k8s.io storageClassName: standard-rwo accessModes: - ReadWriteOnce resources: requests: storage: 10Gi EOF
次のように置き換えます。
KUBERNETES_CLUSTER_KUBECONFIG
: クラスタの kubeconfig ファイル。NAMESPACE
: PVC リソースが存在する Namespace。PVC_NAME
: スナップショットを作成する PVC の名前。VOLUME_SNAPSHOT_NAME
: ボリューム スナップショットの名前。