このページでは、コンテナ アプリケーションの特定の時点のストレージ ボリュームのコピー(スナップショット)を作成する方法について説明します。ボリューム スナップショットを使用すると、ボリュームを以前の状態に戻したり、新しいボリュームをプロビジョニングしたりできます。
このページは、組織のアプリケーション ワークロードの作成を担当するアプリケーション オペレーター グループ内のデベロッパーを対象としています。
始める前に
このドキュメントの手順を完了するには、必要な権限をリクエストして環境を準備する必要があります。
IAM ロールをリクエストする
Kubernetes クラスタでボリューム スナップショットを作成、削除、編集、表示するには、組織の IAM 管理者に Namespace Admin
(namespace-admin)ロールの付与を依頼してください。このロールは、プロジェクトの名前空間にバインドされます。
環境を準備する
事前構成済みのベアメタル Kubernetes クラスタに対してコマンドを実行するには、次のリソースが必要です。
Kubernetes クラスタ名を確認するか、プラットフォーム管理者にクラスタ名を確認します。
ログインして生成します。Kubernetes クラスタの kubeconfig ファイルがない場合
Kubernetes クラスタの kubeconfig パスを使用して、この手順の
CLUSTER_KUBECONFIGを置き換えます。
ボリューム スナップショットを作成する
PersistentVolumeClaim オブジェクトのスナップショットを作成するには、VolumeSnapshot
オブジェクトを作成します。システムはデータの整合性を保証しません。スナップショットを作成する前に、アプリケーションを一時停止してデータをフラッシュします。
VolumeSnapshotカスタム リソースを作成します。kubectl --kubeconfig 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次のように置き換えます。
CLUSTER_KUBECONFIG: Kubernetes クラスタの kubeconfig ファイル。NAMESPACE: ボリューム スナップショットを作成するプロジェクトの名前空間。VOLUME_SNAPSHOT_NAME:VolumeSnapshotオブジェクト名。PVC_NAME: スナップショットを作成する PVC の名前。
.status.readyToUseフィールドがtrueになると、スナップショット オペレーションは完了です。次のコマンドを使用してステータスを確認できます。kubectl --kubeconfig CLUSTER_KUBECONFIG get volumesnapshot \ -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'データソースとして指定されたボリューム スナップショットで PVC マニフェストを更新します。
kubectl --kubeconfig 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次のように置き換えます。
CLUSTER_KUBECONFIG: Kubernetes クラスタの kubeconfig ファイル。NAMESPACE: PVC リソースが存在する名前空間。PVC_NAME: スナップショットを作成する PVC の名前。VOLUME_SNAPSHOT_NAME: ボリューム スナップショットの名前。