Dokumen ini menjelaskan cara menggunakan Alat Migrasi CSI StatefulSet untuk memigrasikan workload stateful dari plugin volume vSphere in-tree ke vSphere CSI Driver di Google Distributed Cloud.
Daftar berikut menunjukkan tahap peluncuran untuk alat ini per versi:
- v1.0: GA
- v0.1: Pratinjau
Versi Google Distributed Cloud yang didukung: 1.30 - 1.28.
Ringkasan
Google Distributed Cloud terintegrasi dengan sistem penyimpanan file atau blok eksternal melalui penyimpanan vSphere VMware, plugin volume dalam hierarki Kubernetes (atau "drivers"), dan driver Container Storage Interface (CSI).
Dengan fitur migrasi CSI Kubernetes yang diaktifkan secara default di versi 1.15, PersistentVolume yang didukung oleh plugin volume vSphere dalam hierarki berlanjut berfungsi di lingkungan khusus CSI. Fitur migrasi CSI mengalihkan panggilan operasi plugin {i>in-tree<i} ke {i>driver<i} CSI. Karena PersistentVolume spesifikasi tidak dapat diubah, masih didukung oleh plugin dalam hierarki. Himpunan fitur yang tersedia sama dengan plugin volume dalam pohon.
Rangkaian lengkap fitur CSI, seperti Ekspansi Volume dan Ringkasan Volume, tidak tersedia untuk volume seperti itu. Untuk memanfaatkan fitur-fitur ini, workload stateful harus dimigrasikan sepenuhnya ke CSI dengan membuat ulang PersistentVolumes yang didukung oleh Driver vSphere CSI. Anda dapat menggunakan alat migrasi CSI untuk memigrasikan workload stateful ke CSI dan menggunakan CSI.
Alat ini menyediakan cara untuk melakukan migrasi
dari PersistentVolume StatefulSet dan
PersistentVolumeKlaim ke CSI dan tidak melibatkan periode nonaktif aplikasi. Ini
mengambil cadangan resource Kubernetes di direktori lokal dan menetapkan
ReclaimPolicy
ke Retain
sebelum migrasi. Jadi tidak akan ada data yang hilang.
Batasan
Alat otomatis hanya didukung pada versi Google Distributed Cloud yang didukung sepenuhnya.
Ini hanya berfungsi dengan StatefulSets. Anda dapat menjalankan pemeriksaan preflight menggunakan alat untuk menjalankan beberapa pemeriksaan keamanan sebelum menggunakan alat itu.
./statefulset-csi-migration-tool preflight \ --kubeconfig ADMIN_KUBECONFIG \ --cluster-name USER_CLUSTER_NAME \ --sts-name STS_NAME \ --sts-namespace STS_NAMESPACE \ --intree-storageclass INTREE_STORAGECLASS \ --csi-storageclass CSI_STORAGECLASS
Ganti kode berikut:
ADMIN_KUBECONFIG
: jalur cluster admin Anda {i>kubeconfig<i}.USER_CLUSTER_NAME
: Jika StatefulSet adalah berjalan di cluster pengguna, lalu berikan nama cluster pengguna. Lewati flag ini jika beban kerja sedang berjalan di cluster admin.STS_NAME
: nama StatefulSet.STS_NAMESPACE
: namespace StatefulSet.INTREE_STORAGECLASS
: StorageClass dalam hierarki yang mendukung PersistentVolume StatefulSet.CSI_STORAGECLASS
: CSI StorageClass nama yang mendukung PersistentVolume StatefulSet setelah migrasi.
Download
Download alat di
gs://gke-on-prem-release/statefulset-csi-migration-tool/v1.0/statefulset-csi-migration-tool
.
Perhatikan bahwa alat ini sedang dalam pratinjau.
Prosedur
Bagian ini memberikan langkah-langkah yang diperlukan untuk memigrasikan StatefulSet dari vSphere
Penyedia internal vCP dalam hierarki (kubernetes.io/vsphere-volume
) ke vSphere
Penyedia CSI (csi.vsphere.vmware.com
).
./statefulset-csi-migration-tool rolling-migration all \ --kubeconfig ADMIN_KUBECONFIG \ --cluster-name USER_CLUSTER_NAME \ --sts-name STS_NAME \ --sts-namespace STS_NAMESPACE \ --intree-storageclass INTREE_STORAGECLASS \ --csi-storageclass CSI_STORAGECLASS \ --working-directory WORKING_DIRECTORY
Ganti kode berikut:
ADMIN_KUBECONFIG: jalur cluster admin Anda {i>kubeconfig<i}.
USER_CLUSTER_NAME: Jika StatefulSet adalah berjalan di cluster pengguna, lalu berikan nama cluster pengguna. Lewati flag ini jika beban kerja sedang berjalan di cluster admin.
STS_NAME: nama StatefulSet.
STS_NAMESPACE: namespace StatefulSet.
INTREE_STORAGECLASS: StorageClass dalam hierarki yang mendukung PersistentVolume StatefulSet.
CSI_STORAGECLASS: CSI StorageClass nama yang mendukung PersistentVolume StatefulSet setelah migrasi.
WORKING_DIRECTORY: direktori lokal untuk menyimpan spesifikasi resource Kubernetes StatefulSet dan Pod-nya, PersistentVolumeKlaim dan PersistentVolume. Nama direktori harus unik untuk setiap StatefulSet. Direktori ini harus kosong atau tidak ada. Sebaiknya jangan buat direktori ini agar alat dapat membuat satu untuk Anda.
Perintah ini akan melakukan tugas berikut:
Mengambil cadangan StatefulSet dan dependensinya seperti PersistentVolume, Spesifikasi replika PersistentVolumeKlaim dan Pod di direktori kerja lokal.
Menghapus StatefulSet dengan kebijakan penghapusan yatim. Langkah ini hanya menghapus StatefulSet tetapi tidak menghapus dependensinya seperti replika Pod, PersistentVolume dan PersistentVolumeKlaim.
Memigrasikan setiap Pod ke driver CSI (mirip dengan Opsi 1), dan melakukan berikut ini:
a. Menetapkan kolom ReclaimPolicy PersistentVolume sebagai Retain.
b. Menghapus Pod, PersistentVolume, dan PersistentVolumeKlaim.
c. Mengonversi VMDK yang ada ke FCD.
d. Membuat PersistentVolume, PersistentVolumeKlaim, dan Pod lagi.
Membuat ulang StatefulSet, tetapi kolom PVCTemplate di spesifikasinya mengarah ke CSI StorageClass. Pengontrol StatefulSet harus dipetakan ke orphaned replika baca lagi.