Halaman ini menjelaskan konsep penyimpanan Google Distributed Cloud (khusus software) untuk VMware.
Ringkasan
Google Distributed Cloud terintegrasi dengan sistem penyimpanan file atau blok eksternal melalui:
- Driver vSphere Container Storage Interface (CSI)
- Driver CSI pihak ketiga
- Plugin volume dalam hierarki Kubernetes
Datastore vSphere
Saat membuat cluster admin, Anda menentukan datastore vSphere yang ada untuk data etcd cluster.
Saat membuat cluster pengguna, Anda dapat menggunakan datastore yang sama dengan cluster admin, atau Anda dapat menentukan datastore yang berbeda. Anda juga dapat menentukan datastore untuk setiap kumpulan node.
Datastore vSphere yang digunakan oleh cluster admin dan pengguna dapat didukung oleh NFS, vSAN, atau VMFS di perangkat blok, seperti array penyimpanan eksternal. Dalam lingkungan multi-host, setiap perangkat blok harus dilampirkan ke semua host di lingkungan, dan datastore harus dikonfigurasi di setiap host melalui opsi Mount Datastore on Additional Hosts.
StorageClasses
Saat membuat PersistentVolumeClaim, Anda dapat menentukan StorageClass yang memberikan informasi tentang cara penyimpanan akan disediakan. Jika Anda tidak menentukan StorageClass, StorageClass default akan digunakan.
StorageClass cluster admin
Di cluster admin, ada StorageClass bernama standard
, dan StorageClass tersebut 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
penyedia 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 ...
StorageClasses cluster pengguna
Di cluster pengguna, ada StorageClass bernama standard
dan StorageClass
lainnya bernama standard-rwo
.
StorageClass standard-rwo
ditetapkan sebagai StorageClass default, dan mencantumkan driver vSphere CSI sebagai penyedia.
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 dikirimkan 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 penyedia untuk StorageClass default di cluster pengguna. Namun, sekarang plugin volume vSphere dalam hierarki tidak digunakan lagi, dan driver CSI vSphere adalah penyedia untuk StorageClass default di cluster pengguna. Sebaiknya gunakan driver vSphere CSI, bukan plugin volume in-tree.
Mulai Google Distributed Cloud versi 1.15, fitur migrasi CSI Kubernetes diaktifkan secara default untuk plugin volume vSphere dalam hierarki. Artinya, jika workload menggunakan volume vSphere dalam hierarki, semua panggilan operasi penyimpanan internal akan otomatis dialihkan ke driver CSI vSphere.
Misalnya, PersistentVolumeClaim menentukan StorageClass standard
, yang mencantumkan plugin volume dalam hierarki vSphere, kubernetes.io/vsphere-volume
, sebagai penyedia. Kemudian, setiap beban kerja yang menggunakan
PersistentVolumeClaim tersebut akan mengalihkan panggilan operasi penyimpanannya ke
driver CSI vSphere, csi.vsphere.vmware.com
.
Pemeriksaan pra-penerbangan
Saat Anda membuat cluster baru atau mengupgrade cluster, ada pemeriksaan pra-penerbangan yang memastikan lingkungan Anda cocok untuk migrasi CSI.
Misalnya, pemeriksaan pra-penerbangan:
- Pastikan versi vCenter dan ESXI Anda sudah sesuai.
- Pastikan driver vSphere CSI diaktifkan jika ada vSphere PersistentVolumes dalam hierarki.
- Pastikan StorageClass vSphere tidak memiliki parameter tertentu yang diabaikan setelah Migrasi CSI.
- Verifikasi anotasi pada PersistentVolume dalam hierarki dan PersistentVolumeClaim yang dibuat secara statis yang diperlukan untuk Migrasi CSI.
- Pastikan cluster berhasil menjalankan beban kerja menggunakan volume CSI yang disediakan oleh driver CSI vSphere.
Untuk informasi selengkapnya, lihat Menjalankan pemeriksaan pra-penerbangan.
Masalah umum
Ada beberapa masalah umum terkait Driver CSI vSphere. Untuk informasi dan solusi, lihat bagian Masalah Umum dalam catatan rilis Driver CSI VMWare vSphere 3.0.
Menyelesaikan migrasi ke CSI
Dengan fitur migrasi CSI Kubernetes yang diaktifkan secara default di 1.15, PersistentVolume
yang didukung oleh plugin volume vSphere dalam hierarki akan terus
berfungsi di lingkungan khusus CSI, plugin ini hanya mengalihkan panggilan operasi
plugin dalam hierarki ke plugin CSI. Karena spesifikasi PersistentVolume
tidak dapat diubah,
spesifikasi akan sama dengan plugin volume dalam hierarki.
Oleh karena itu, kumpulan fitur lengkap CSI seperti fitur Ekspansi Volume dan Snapshot Volume tidak tersedia untuk volume tersebut. Untuk memanfaatkan fitur ini, workload stateful harus dimigrasikan sepenuhnya ke CSI dengan membuat ulang spesifikasi resource Kubernetes dengan kolom CSI. Kami telah mengembangkan alat otomatis untuk membantu memigrasikan beban kerja stateful ke CSI tanpa periode nonaktif aplikasi yang akan memungkinkan Anda menggunakan set 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 yang berbeda. Kemudian, Anda dapat menetapkan StorageClass sebagai default cluster, atau mengonfigurasi beban kerja untuk menggunakan StorageClass (contoh StatefulSet).
Partner penyimpanan
Kami telah berpartner dengan banyak vendor penyimpanan untuk memenuhi syarat 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 PersistentVolumeClaim. Anda dapat melakukan ekspansi online saat volume sedang digunakan oleh Pod, atau ekspansi offline saat volume tidak digunakan.
Untuk driver vSphere CSI, ekspansi offline tersedia di vSphere versi >= 7.0, dan ekspansi online tersedia di vSphere versi >= 7.0 Update 2.
StorageClass standard-rwo
menetapkan allowVolumeExpansion
ke benar (true) secara default
untuk cluster yang baru dibuat yang berjalan di >= vSphere 7.0. Anda dapat menggunakan perluasan online
dan offline untuk volume menggunakan StorageClass ini. Untuk cluster yang diupgrade, karena StorageClass tidak diubah pada upgrade cluster, saat cluster diupgrade dari 1.7 ke 1.8, setelan allowVolumeExpansion
di standard-rwo
tetap tidak ditetapkan, yang berarti perluasan volume tidak diizinkan.
Untuk mengetahui 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 penampung sidecar 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 vSphere CSI tidak akan dihapus. Anda harus menghapus semua volume, PersistentVolumeClaims, dan StatefulSets sebelum menghapus cluster.
Pemecahan masalah
Lihat Memecahkan Masalah Penyimpanan.