Menggunakan Alat Migrasi CSI StatefulSet

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:

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:

  1. Mengambil cadangan StatefulSet dan dependensinya seperti PersistentVolume, Spesifikasi replika PersistentVolumeKlaim dan Pod di direktori kerja lokal.

  2. Menghapus StatefulSet dengan kebijakan penghapusan yatim. Langkah ini hanya menghapus StatefulSet tetapi tidak menghapus dependensinya seperti replika Pod, PersistentVolume dan PersistentVolumeKlaim.

  3. 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.

  4. Membuat ulang StatefulSet, tetapi kolom PVCTemplate di spesifikasinya mengarah ke CSI StorageClass. Pengontrol StatefulSet harus dipetakan ke orphaned replika baca lagi.