Penyimpanan

Halaman ini menjelaskan konsep penyimpanan Google Distributed Cloud.

Ringkasan

Google Distributed Cloud terintegrasi dengan sistem penyimpanan file atau blok eksternal melalui:

  • Driver vSphere Container Storage Interface (CSI)
  • Pengemudi CSI pihak ketiga
  • Plugin volume dalam hierarki Kubernetes

Datastore vSphere

Saat membuat cluster admin, Anda menentukan datastore vSphere yang sudah ada untuk data etcd cluster.

Saat membuat cluster pengguna, Anda dapat menggunakan datastore yang sama seperti cluster admin, atau Anda dapat menentukan datastore berbeda. Anda juga dapat menentukan datastore untuk setiap kumpulan node.

Datastore vSphere yang digunakan oleh admin dan cluster pengguna dapat didukung oleh NFS, vSAN, atau VMFS di perangkat blok, seperti array penyimpanan eksternal. Dalam lingkungan multi-host, setiap perangkat blok harus terpasang ke semua host di lingkungan tersebut, dan datastore harus dikonfigurasi di setiap host melalui opsi Mount Datastore di Host Tambahan.

StorageClasses

Saat membuat PersistentVolumeClaim, Anda dapat menentukan StorageClass yang memberikan informasi tentang bagaimana penyimpanan akan disediakan. Jika Anda tidak menentukan StorageClass, maka StorageClass default akan digunakan.

StorageClass cluster Admin

Dalam cluster admin, ada StorageClass bernama standard, dan ditetapkan sebagai StorageClass default. StorageClass standard mencantumkan plugin volume dalam hierarki vSphere sebagai penyedia.

Untuk melihat StorageClass standard:

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get storageclass \
    standard --output yaml

Dalam output, Anda dapat melihat bahwa standard adalah StorageClass default dan penyedianya adalah plugin volume dalam hierarki vSphere, kubernetes.io/vsphere-volume. Anda juga dapat melihat nama datastore vSphere.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  ...
  labels:
    bundle.gke.io/component-name: admin-storage-class
  name: standard
...
parameters:
  datastore: vsanDatastore
provisioner: kubernetes.io/vsphere-volume
...

StorageClass cluster pengguna

Dalam cluster pengguna, ada StorageClass bernama standard dan StorageClass lain bernama standard-rwo.

StorageClass standard-rwo ditetapkan sebagai StorageClass default, dan mencantumkan driver CSI vSphere sebagai penyediaan.

Untuk melihat StorageClass standard-rwo:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get storageclass \
    standard-rwo --output yaml

Dalam output, Anda dapat melihat bahwa standard-rwo adalah StorageClass default dan penyedianya adalah driver CSI vSphere, csi.vsphere.vmware.com. Anda juga dapat melihat URL datastore vSphere:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
    ...
  labels:
    bundle.gke.io/component-name: user-vsphere-csi-driver-addon
    ...
  name: standard-rwo
...
parameters:
  datastoreURL: ds:///vmfs/volumes/vsan:52fb6ca22be2454e-e67f620175964a9f/
provisioner: csi.vsphere.vmware.com
...

Plugin volume dalam hierarki Kubernetes

Kubernetes dilengkapi dengan sejumlah plugin volume dalam hierarki. Namun, sebagian besar plugin volume dalam hierarki ini tidak digunakan lagi (termasuk plugin volume dalam hierarki vSphere), untuk informasi selengkapnya, lihat project migrasi CSI.

Migrasi CSI untuk driver penyimpanan vSphere

Sebelumnya, plugin volume vSphere dalam hierarki adalah penyediaan untuk StorageClass default di cluster pengguna. Namun, plugin volume vSphere dalam hierarki kini tidak digunakan lagi, dan driver CSI vSphere adalah penyediaan untuk StorageClass default di cluster pengguna. Sebaiknya gunakan driver CSI vSphere, bukan plugin volume in-tree.

Mulai versi 1.15 Google Distributed Cloud, fitur migrasi CSI Kubernetes diaktifkan secara default untuk plugin volume vSphere dalam hierarki. Artinya, jika beban kerja menggunakan volume vSphere dalam hierarki, semua panggilan operasi penyimpanan internal akan otomatis dialihkan ke driver CSI vSphere.

Misalnya, PersistentVolumeKlaim menentukan standard StorageClass, yang mencantumkan plugin volume dalam hierarki vSphere, kubernetes.io/vsphere-volume, sebagai penyedia. Kemudian, semua workload yang menggunakan PersistentVolumeKlaim tersebut akan mengalihkan panggilan operasi penyimpanannya ke driver CSI vSphere, csi.vsphere.vmware.com.

Pemeriksaan preflight

Saat Anda membuat cluster baru atau mengupgrade cluster, ada pemeriksaan preflight yang memastikan lingkungan Anda cocok untuk migrasi CSI.

Misalnya, pemeriksaan preflight:

  • Pastikan versi vCenter dan ESXI Anda sudah sesuai.
  • Pastikan driver vSphere CSI diaktifkan jika ada vSphere PersistentVolumes dalam hierarki.
  • Pastikan vSphere StorageClasses tidak memiliki parameter tertentu yang diabaikan setelah Migrasi CSI.
  • Memverifikasi anotasi di PersistentVolumes dan PersistentVolumeKlaim yang diperlukan untuk Migrasi CSI secara statis.
  • Pastikan cluster berhasil menjalankan beban kerja menggunakan volume CSI yang disediakan oleh driver CSI vSphere.

Untuk mengetahui informasi selengkapnya, lihat Menjalankan pemeriksaan preflight.

Masalah umum

Ada beberapa masalah umum terkait Driver vSphere CSI. Untuk informasi dan solusi, lihat bagian Masalah Umum di catatan rilis VMWare vSphere CSI Driver 3.0.

Selesaikan migrasi ke CSI

Dengan fitur migrasi Kubernetes CSI yang diaktifkan secara default di versi 1.15, PersistentVolume yang didukung oleh plugin volume vSphere in-tree akan terus berfungsi di lingkungan khusus CSI. Fitur ini hanya mengalihkan panggilan operasi plugin in-tree ke plugin CSI. Karena spesifikasi PersistentVolume tidak dapat diubah, spesifikasinya akan sama seperti untuk plugin volume dalam hierarki.

Oleh karena itu, set fitur lengkap CSI seperti fitur Ekspansi Volume dan Ringkasan Volume tidak tersedia untuk volume tersebut. Untuk memanfaatkan fitur-fitur ini, workload stateful harus dimigrasikan sepenuhnya ke CSI dengan membuat ulang spesifikasi resource Kubernetes menggunakan kolom CSI. Kami telah mengembangkan alat otomatis untuk membantu memigrasikan workload stateful ke CSI tanpa periode nonaktif aplikasi yang akan memungkinkan Anda menggunakan rangkaian fitur CSI lengkap.

Menggunakan driver pihak ketiga

Jika ingin menyediakan volume penyimpanan selain datastore vSphere, Anda dapat membuat StorageClass baru di cluster yang menggunakan driver penyimpanan berbeda. Kemudian, Anda dapat menetapkan StorageClass sebagai default cluster, atau mengonfigurasi workload agar menggunakan StorageClass (contoh StatefulSet).

Partner penyimpanan

Kami telah berpartner dengan banyak vendor penyimpanan untuk menguji kelayakan sistem penyimpanan mereka dengan Google Distributed Cloud. Lihat daftar lengkap partner penyimpanan yang memenuhi syarat.

Ekspansi volume

Anda dapat memperluas ukuran volume persisten setelah disediakan dengan mengedit permintaan kapasitas di PersistentVolumeKlaim. Anda dapat melakukan ekspansi online saat volume sedang digunakan oleh Pod, atau ekspansi offline saat volume tidak digunakan.

Untuk driver CSI vSphere, ekspansi offline tersedia dalam vSphere versi >= 7.0, dan ekspansi online tersedia dalam versi vSphere >= 7.0 Update 2.

StorageClass standard-rwo menetapkan allowVolumeExpansion ke benar (true) secara default untuk cluster yang baru dibuat dan berjalan di >= vSphere 7.0. Anda dapat menggunakan ekspansi online dan offline untuk volume menggunakan StorageClass ini. Untuk cluster yang diupgrade, karena StorageClasses tidak diubah saat upgrade cluster, saat cluster diupgrade dari 1.7 ke 1.8, setelan allowVolumeExpansion di standard-rwo tetap tidak ditetapkan, yang berarti ekspansi volume tidak diizinkan.

Untuk informasi selengkapnya tentang ekspansi volume, lihat Menggunakan ekspansi volume.

Snapshot Volume CSI

Anda dapat membuat snapshot penyimpanan persisten menggunakan resource VolumeSnapshot dan VolumeSnapshotClass. Untuk menggunakan fitur ini pada volume CSI, driver CSI harus mendukung snapshot volume, dan container file bantuan external-snapshotter harus disertakan dalam deployment driver CSI.

Untuk mengetahui informasi selengkapnya tentang snapshot volume, lihat Menggunakan snapshot volume.

Pengontrol snapshot CSI di-deploy secara otomatis saat Anda membuat cluster.

Pembersihan volume

Saat Anda menghapus cluster pengguna, volume yang disediakan oleh driver CSI vSphere tidak akan dihapus. Anda harus menghapus semua volume, PersistentVolume Claimss, dan StatefulSets dihapus sebelum menghapus cluster.

Pemecahan masalah

Lihat Memecahkan Masalah Penyimpanan.

Bacaan lebih lanjut