Halaman ini menjelaskan GKE tentang konsep penyimpanan VMware.
Ringkasan
GKE di VMware terintegrasi dengan sistem block atau penyimpanan file eksternal melalui:
- Driver Antarmuka Penyimpanan Container (CSI) vSphere
- Driver CSI pihak ketiga
- Plugin volume in-tree 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 berbeda. Anda juga dapat menentukan datastore untuk masing-masing kumpulan node.
Datastore vSphere yang digunakan oleh admin dan cluster pengguna dapat didukung oleh NFS, vSAN, atau VMFS pada perangkat blok, seperti array penyimpanan eksternal. Dalam lingkungan multi-host, setiap perangkat blok harus terpasang ke semua host di lingkungan, dan datastore harus dikonfigurasi pada setiap host melalui opsi Pasang Datastore pada Host Tambahan.
StorageClasses
Saat membuat PersistentVolumeClaim, Anda dapat menentukan StorageClass yang memberikan informasi tentang cara penyediaan penyimpanan. Jika Anda tidak menentukan StorageClass, StorageClass default akan digunakan.
StorageClass cluster Admin
Dalam cluster admin, ada StorageClass bernama standard
, dan ditetapkan sebagai StorageClass default. standard
StorageClass 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 ...
Kelas Penyimpanan cluster pengguna
Dalam cluster pengguna, ada StorageClass bernama standard
dan StorageClass lain bernama standard-rwo
.
standard-rwo
StorageClass 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 in-tree Kubernetes
Kubernetes dikirimkan dengan sejumlah plugin volume in-tree. 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, kini plugin volume vSphere dalam pohon tidak digunakan lagi, dan driver vSphere CSI adalah penyedia untuk StorageClass default dalam cluster pengguna. Sebaiknya gunakan driver CSI vSphere, bukan plugin volume in-tree.
Mulai versi 1.15 GKE di VMware, fitur migrasi CSI Kubernetes diaktifkan secara default untuk plugin volume vSphere in-tree. Ini berarti bahwa jika beban kerja menggunakan volume vSphere dalam pohon, semua panggilan operasi penyimpanan internal akan otomatis dialihkan ke driver CSI vSphere.
Misalnya, PersistentVolumeClaim menentukan standard
StorageClass, yang mencantumkan plugin volume dalam hierarki vSphere, kubernetes.io/vsphere-volume
, sebagai penyedia. Kemudian, setiap beban kerja yang menggunakan PersistentVolumeClaim tersebut akan dialihkan panggilan operasi penyimpanannya ke driver CSI vSphere, csi.vsphere.vmware.com
.
Pemeriksaan awal
Saat 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 PersistentVolume vSphere dalam pohon.
- Pastikan vSphere StorageClasses tidak memiliki parameter tertentu yang diabaikan setelah CSI Migration.
- Verifikasi anotasi pada PersistentVolumes dan PersistentVolumeClaims dalam hierarki yang dibuat secara statis diperlukan untuk Migrasi CSI.
- Pastikan cluster berhasil menjalankan beban kerja menggunakan volume CSI yang disediakan oleh driver vSphere CSI.
Untuk informasi selengkapnya, lihat Menjalankan pemeriksaan preflight.
Masalah umum
Ada beberapa masalah umum terkait Driver vSphere CSI. Untuk mengetahui informasi dan solusinya, lihat bagian Masalah Umum dalam catatan rilis VMWare vSphere CSI Driver 3.0.
Selesaikan migrasi ke CSI
Dengan mengaktifkan fitur migrasi Kubernetes CSI secara default di versi 1.15,
PersistentVolume
yang didukung oleh plugin volume vSphere di pohon 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,
spesifikasi akan sama seperti untuk plugin volume dalam hierarki.
Oleh karena itu, set fitur lengkap CSI seperti Ekspansi Volume dan fitur 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 workload stateful ke CSI tanpa periode nonaktif aplikasi yang memungkinkan Anda menggunakan set fitur CSI lengkap.
Menggunakan pengemudi pihak ketiga
Jika ingin menyediakan volume penyimpanan selain datastore vSphere, Anda dapat membuat StorageClass baru dalam cluster yang menggunakan driver penyimpanan 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 GKE di VMware. Lihat daftar lengkap partner penyimpanan yang memenuhi syarat.
Perluasan volume
Anda dapat memperluas ukuran volume persisten setelah disediakan dengan mengedit permintaan kapasitas di PersistentVolumeClaim. Anda dapat melakukan perluasan online saat volume sedang digunakan oleh Pod, atau perluasan offline saat volume sedang tidak digunakan.
Untuk driver CSI vSphere, perluasan offline tersedia dalam versi vSphere >= 7.0, dan ekspansi online tersedia dalam versi vSphere >= 7.0 Update 2.
standard-rwo
StorageClass menetapkan allowVolumeExpansion
ke benar (true) secara default
untuk cluster yang baru dibuat yang berjalan pada >= vSphere 7.0. Anda dapat menggunakan ekspansi online
dan offline untuk volume menggunakan StorageClass ini. Untuk cluster yang diupgrade,
karena StorageClasses tidak dimodifikasi 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 mengetahui informasi selengkapnya tentang perluasan volume, lihat Menggunakan ekspansi volume.
Snapshot CSI Volume
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 menghapus cluster pengguna, volume yang disediakan oleh driver CSI vSphere tidak akan dihapus. Anda harus menghapus semua volume, PersistentVolumeClaims, dan StatefulSets sebelum menghapus cluster.
Pemecahan masalah
Lihat Memecahkan Masalah Penyimpanan.