Storage

Halaman ini menjelaskan Google Distributed Cloud (khusus software) untuk konsep penyimpanan VMware.

Ringkasan

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

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

Datastore vSphere

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

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

{i>Datastore vSphere<i} yang digunakan oleh admin dan cluster pengguna dapat didukung oleh NFS, vSAN, atau VMFS di perangkat blok, seperti array penyimpanan eksternal. Di multi-host, setiap perangkat blok harus terpasang ke semua {i>host<i} di lingkungan, dan datastore harus dikonfigurasi pada setiap {i>host<i} melalui Memasang Datastore pada Host Tambahan sebelumnya.

StorageClasses

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

StorageClass cluster Admin

Di cluster admin, ada StorageClass bernama standard, dan ditetapkan sebagai StorageClass default. Daftar StorageClass standard plugin {i>in-tree volume<i} vSphere sebagai penyedia.

Untuk melihat StorageClass standard:

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

Pada output, Anda dapat melihat bahwa standard adalah StorageClass default dan penyedianya adalah plugin {i> vSphere in-tree volume<i}, kubernetes.io/vsphere-volume. Anda juga dapat melihat nama vSphere datastore.

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

Di cluster pengguna, ada StorageClass bernama standard dan satu lagi StorageClass bernama standard-rwo.

StorageClass standard-rwo ditetapkan sebagai StorageClass default, dan perintah itu mencantumkan {i>driver<i} CSI vSphere sebagai penyediaan.

Untuk melihat StorageClass standard-rwo:

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

Pada output, Anda dapat melihat bahwa standard-rwo adalah StorageClass default dan penyedianya adalah driver CSI vSphere, csi.vsphere.vmware.com. Anda dapat lihat juga 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 menyertakan sejumlah plugin volume dalam hierarki. Namun, sebagian besar plugin volume dalam hierarki ini tidak digunakan lagi (termasuk plugin volume dalam pohon vSphere), untuk informasi lebih lanjut, lihat Migrasi CSI proyek.

Migrasi CSI untuk driver penyimpanan vSphere

Sebelumnya, plugin volume vSphere in-tree adalah penyedia untuk StorageClass default di cluster pengguna. Tapi kini plugin volume vSphere dalam hierarki tidak digunakan lagi, dan driver CSI vSphere adalah penyedia untuk StorageClass default di cluster pengguna. Saran dari kami Anda menggunakan {i>driver<i} CSI vSphere alih-alih plugin volume {i>in-tree<i}.

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

Misalnya, anggap PersistentVolumeKlaim menentukan standard StorageClass, yang mencantumkan plugin volume in-tree vSphere, kubernetes.io/vsphere-volume, sebagai penyedia. Kemudian beban kerja apa pun yang menggunakan panggilan operasi penyimpanannya akan dialihkan ke PersistentVolumeKlaim driver CSI vSphere, csi.vsphere.vmware.com.

Pemeriksaan preflight

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

Misalnya, pemeriksaan preflight:

  • Pastikan versi vCenter dan ESXI Anda sudah sesuai.
  • Memastikan driver CSI vSphere diaktifkan jika ada vSphere dalam hierarki PersistentVolume.
  • Memverifikasi bahwa vSphere StorageClasses tidak memiliki parameter tertentu yang diabaikan setelah Migrasi CSI.
  • Memverifikasi anotasi pada PersistentVolume dalam hierarki yang dibuat secara statis dan PersistentVolumeKlaim diperlukan untuk Migrasi CSI.
  • Memastikan cluster berhasil menjalankan beban kerja menggunakan volume CSI yang disediakan oleh {i>driver<i} CSI vSphere.

Untuk informasi selengkapnya, lihat Menjalankan pemeriksaan preflight.

Masalah umum

Ada beberapa masalah umum terkait Driver vSphere CSI. Sebagai dan solusinya, lihat bagian Masalah Umum di Catatan rilis VMWare vSphere CSI Driver 3.0.

Selesaikan migrasi ke CSI

Dengan fitur migrasi CSI Kubernetes yang diaktifkan secara default di versi 1.15, PersistentVolume yang didukung oleh plugin volume vSphere dalam hierarki akan melanjutkan berfungsi di lingkungan khusus CSI, fungsi ini hanya mengalihkan plugin dalam hierarki dan panggilan operasi ke plugin CSI. Karena spesifikasi PersistentVolume tidak dapat diubah, spesifikasinya akan sama dengan plugin volume dalam hierarki.

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

Menggunakan driver pihak ketiga

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

Partner penyimpanan

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

Ekspansi volume

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

Untuk Driver CSI vSphere, perluasan offline tersedia di vSphere versi >= 7.0, dan perluasan online tersedia dalam vSphere versi >= 7.0 Update 2.

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

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

Snapshot Volume CSI

Anda dapat membuat snapshot penyimpanan persisten menggunakan VolumeSnapshot dan VolumeSnapshotClass Google Cloud Platform. Untuk menggunakan fitur ini pada volume CSI, driver CSI harus mendukung snapshot volume, dan penampung file bantuan external-snapshotter harus termasuk 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 .

Pembersihan volume

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

Pemecahan masalah

Lihat Memecahkan Masalah Penyimpanan.

Bacaan lebih lanjut