Membuat snapshot volume

Dokumen ini menjelaskan cara membuat salinan, atau snapshot, volume penyimpanan pada titik waktu tertentu untuk aplikasi container Anda. Snapshot volume memungkinkan Anda mengembalikan volume ke status sebelumnya atau menyediakan volume baru.

Dokumen ini ditujukan bagi developer dalam grup operator aplikasi, yang bertanggung jawab membuat workload aplikasi untuk organisasi mereka. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC dengan air gap.

Sebelum memulai

Untuk menyelesaikan tugas dalam dokumen ini, Anda harus meminta izin yang diperlukan dan menyiapkan lingkungan Anda.

Meminta peran IAM

Anda harus memiliki peran tertentu untuk mendapatkan izin yang diperlukan untuk membuat snapshot volume. Peran yang Anda perlukan bergantung pada apakah Anda bekerja dalam cluster bersama yang tercakup dalam organisasi atau cluster standar yang tercakup dalam project. Untuk mengetahui informasi selengkapnya, lihat Konfigurasi cluster Kubernetes.

Peran cluster bersama

Untuk membuat, menghapus, mengedit, atau melihat snapshot volume di cluster bersama, minta Admin Project IAM Anda untuk memberi Anda peran Namespace Admin (namespace-admin). Peran ini terikat ke namespace project Anda.

Peran cluster standar

Untuk membuat, menghapus, mengedit, atau melihat snapshot volume di cluster standar, minta Admin Project IAM Anda untuk memberi Anda peran Cluster Developer (cluster-developer). Peran ini terikat ke namespace project Anda.

Menyiapkan lingkungan Anda

Untuk menjalankan perintah terhadap cluster Kubernetes menggunakan API, pastikan Anda memiliki resource berikut:

  • Temukan nama cluster Kubernetes, atau tanyakan kepada anggota grup administrator platform apa nama clusternya.

  • Login dan buat file kubeconfig untuk cluster Kubernetes.

  • Gunakan jalur kubeconfig cluster Kubernetes untuk mengganti KUBERNETES_CLUSTER_KUBECONFIG dalam petunjuk ini.

Mengambil snapshot volume

Untuk mengambil snapshot objek PersistentVolumeClaim, buat objek VolumeSnapshot. Sistem tidak menjamin konsistensi data. Jeda aplikasi dan kosongkan data sebelum mengambil snapshot.

  1. Buat resource kustom 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
    

    Ganti kode berikut:

    • KUBERNETES_CLUSTER_KUBECONFIG: file kubeconfig untuk cluster.

    • NAMESPACE: namespace tempat membuat snapshot volume. Untuk cluster bersama, ini harus berupa namespace project. Untuk cluster standar, namespace-nya dapat berupa namespace apa pun.

    • VOLUME_SNAPSHOT_NAME: nama objek VolumeSnapshot.

    • PVC_NAME: nama PVC yang snapshot-nya Anda buat.

  2. Operasi snapshot selesai saat kolom .status.readyToUse menjadi true. Anda dapat menggunakan perintah berikut untuk memeriksa status:

      kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG get volumesnapshot \
        -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'
    
  3. Perbarui manifes PVC dengan snapshot volume yang ditentukan sebagai sumber data:

    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
    

    Ganti kode berikut:

    • KUBERNETES_CLUSTER_KUBECONFIG: file kubeconfig untuk cluster.

    • NAMESPACE: namespace tempat resource PVC berada. Untuk cluster bersama, ini harus berupa namespace project. Untuk cluster standar, namespace-nya dapat berupa namespace apa pun.

    • PVC_NAME: nama PVC yang snapshot-nya Anda buat.

    • VOLUME_SNAPSHOT_NAME: nama snapshot volume.

Langkah berikutnya