Dokumen ini menjelaskan cara menggunakan Alat Migrasi CSI StatefulSet untuk memigrasikan workload stateful dari plugin volume vSphere dalam hierarki ke Driver CSI vSphere 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 VMware vSphere, plugin volume in-tree Kubernetes (atau "driver"), dan driver Container Storage Interface (CSI).
Dengan fitur migrasi CSI Kubernetes yang diaktifkan secara default di 1.15, PersistentVolume yang didukung oleh plugin volume vSphere dalam tree akan terus berfungsi di lingkungan khusus CSI. Fitur migrasi CSI mengalihkan panggilan operasi plugin dalam hierarki ke driver CSI. Karena spesifikasi PersistentVolume tidak dapat diubah, spesifikasi tersebut masih didukung oleh plugin dalam hierarki. Kumpulan fitur yang tersedia sama dengan plugin volume dalam tree.
Kumpulan lengkap fitur CSI, seperti Ekspansi Volume dan Snapshot Volume, tidak tersedia untuk volume tersebut. Untuk memanfaatkan fitur ini, workload stateful harus dimigrasikan sepenuhnya ke CSI dengan membuat ulang PersistentVolume yang didukung oleh vSphere CSI Driver. Anda dapat menggunakan alat migrasi CSI untuk memigrasikan beban kerja stateful ke CSI dan menggunakan kumpulan lengkap fitur CSI.
Alat ini menyediakan cara untuk melakukan migrasi berkelanjutan PersistentVolume dan
PersistentVolumeClaim StatefulSet ke CSI dan tidak melibatkan periode nonaktif aplikasi. Alat ini mengambil cadangan resource Kubernetes di direktori lokal dan menetapkan ReclaimPolicy
ke Retain
sebelum migrasi. Jadi, tidak akan ada kehilangan data.
Batasan
Alat otomatis hanya didukung pada versi Google Distributed Cloud yang didukung sepenuhnya.
Fitur ini hanya berfungsi dengan StatefulSet. Anda dapat menjalankan pemeriksaan pra-penerbangan menggunakan alat ini untuk menjalankan beberapa pemeriksaan keamanan sebelum menggunakan alat tersebut.
./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 file kubeconfig cluster admin Anda.USER_CLUSTER_NAME
: Jika StatefulSet berjalan di cluster pengguna, berikan nama cluster pengguna. Lewati tanda ini jika beban kerja berjalan di cluster admin.STS_NAME
: nama StatefulSet.STS_NAMESPACE
: namespace StatefulSet.INTREE_STORAGECLASS
: nama StorageClass dalam hierarki yang mendukung PersistentVolume StatefulSet.CSI_STORAGECLASS
: nama CSI StorageClass yang mendukung PersistentVolume StatefulSet setelah migrasi.
Download
Download alat ini di
gs://gke-on-prem-release/statefulset-csi-migration-tool/v1.0/statefulset-csi-migration-tool
.
Perhatikan bahwa alat ini masih dalam pratinjau.
Prosedur
Bagian ini memberikan langkah-langkah yang diperlukan untuk memigrasikan StatefulSet dari penyedia internal vCP dalam hierarki vSphere (kubernetes.io/vsphere-volume
) ke penyedia CSI vSphere (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 file kubeconfig cluster admin Anda.
USER_CLUSTER_NAME: Jika StatefulSet berjalan di cluster pengguna, berikan nama cluster pengguna. Lewati tanda ini jika beban kerja berjalan di cluster admin.
STS_NAME: nama StatefulSet.
STS_NAMESPACE: namespace StatefulSet.
INTREE_STORAGECLASS: nama StorageClass dalam hierarki yang mendukung PersistentVolume StatefulSet.
CSI_STORAGECLASS: nama CSI StorageClass yang mendukung PersistentVolume StatefulSet setelah migrasi.
WORKING_DIRECTORY: direktori lokal untuk menyimpan spesifikasi resource Kubernetes StatefulSet dan Pod-nya, PersistentVolumeClaim, 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 direktori untuk Anda.
Perintah ini melakukan tugas-tugas berikut:
Melakukan pencadangan StatefulSet dan dependensinya seperti spesifikasi replika Pod, PersistentVolume, dan PersistentVolumeClaim di direktori kerja lokal.
Menghapus StatefulSet dengan kebijakan penghapusan anak yatim. Langkah ini hanya menghapus StatefulSet, tetapi tidak menghapus dependensinya seperti replika Pod, PersistentVolume, dan PersistentVolumeClaim.
Memigrasikan setiap Pod ke driver CSI (mirip dengan Opsi 1), dan melakukan hal berikut:
a. Menetapkan kolom ReclaimPolicy PersistentVolume sebagai Retain.
b. Menghapus Pod, PersistentVolume, dan PersistentVolumeClaim.
c. Mengonversi VMDK yang ada menjadi FCD.
d. Membuat PersistentVolume, PersistentVolumeClaim, dan Pod lagi.
Membuat ulang StatefulSet, tetapi kolom PVCTemplate dalam spesifikasinya mengarah ke CSI StorageClass. Pengontrol StatefulSet harus memetakan ulang ke replika yang tidak memiliki induk.