Edit This Page

Pengklonaan Volume CSI

FEATURE STATE: Kubernetes v1.16 [beta]
Dokumen ini mendeskripsikan konsep pengklonaan Volume CSI yang telah tersedia di dalam Kubernetes. Pengetahuan tentang Volume disarankan.

Introduction

Fitur CSIThe Container Storage Interface (CSI) defines a standard interface to expose storage systems to containers. Volume Cloning menambahkan dukungan untuk merinci PVCClaims storage resources defined in a PersistentVolume so that it can be mounted as a volume in a container. yang telah tersedia pada kolom dataSource untuk mengindikasikan bahwa seorang pengguna ingin melakukan pengklonaan terhadap sebuah VolumeSebuah direktori yang mengandung data, dapat diakses o;eh kontainer-kontainer di dalam pod. .

Sebuah klona didefinisikan sebagai sebuah duplikat dari sebuah Volume Kubernetes yang telah tersedia yang dapat digunakan sebagai sebuah Volume standar. Perbedaannya hanyalah pada saat penyediaannya, daripada membuat sebuah Volume kosong yang "baru", peranti penyokongnya membuat sebuah duplikat sama persis dari Volume yang dirinci.

Implementasi dari pengklonaan, dari sudut pandang API Kubernetes, secara sederhana menambahkan kemampuan untuk merinci sebuah PVC yang telah tersedia sebagai sebuah dataSource saat pembuatan PVC. PVC sumber harus tertambat (bound) dan tersedia (tidak sedang digunakan).

Pengguna-pengguna mesti menyadari hal-hal berikut saat menggunakan fitur ini:

  • Dukungan pengklonaan (VolumePVCDataSource) hanya tersedia untuk driver-driver CSI.
  • Dukungan pengklonaan hanya tersedia untuk penyedia-penyedia dinamis.
  • Driver-driver CSI mungkin telah atau belum mengimplementasi fungsi pengklonaan Volume.
  • Kamu hanya dapat mengklonakan sebuah PVC saat ia tersedia pada Namespace yang sama dengan PVC tujuan (sumber dan tujuan harus berada pada Namespace yang sama).
  • Pengklonaan hanya didukung pada Storage Class yang sama.
    • Volume tujuan harus memiliki Storage Class yang sama dengan sumbernya.
    • Storage Class bawaan dapat digunakan dan storageClassName dihilangkan dari spec

Penyediaan

Klona-klona disediakan sama seperti PVC lainnya dengan pengecualian dengan penambahan sebuah dataSource yang merujuk pada sebuah PVC yang telah tersedia pada Namespace yang sama.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
    name: clone-of-pvc-1
    namespace: myns
spec:
  accessModes:
  - ReadWriteOnce
  storageClassName: cloning
  resources:
    requests:
      storage: 5Gi
  dataSource:
    kind: PersistentVolumeClaim
    name: pvc-1

Hasilnya adalah sebuah PVC baru dengan nama clone-of-pvc-1 yang memiliki isi yang sama dengan sumber yang dirinci pvc-1.

Penggunaan

Setelah tersedianya PVC baru tersebut, PVC baru yang diklonakan tersebut digunakan sama seperti PVC lainnya. Juga diharapkan pada titik ini bahwa PVC baru tersebut adalah sebuah objek terpisah yang independen. Ia dapat digunakan, diklonakan, di-snapshot, atau dihapus secara terpisah dan tanpa perlu memikirkan PVC dataSource aslinya. Hal ini juga berarti bahwa sumber tidak terikat sama sekali dengan klona yang baru dibuat tersebut, dan dapat diubah atau dihapus tanpa memengaruhi klona yang baru dibuat tersebut.