Menggunakan Alat Migrasi CSI StatefulSet

Dokumen ini menjelaskan cara menggunakan Alat Migrasi CSI StatefulSet untuk memigrasikan workload stateful dari plugin volume vSphere dalam struktur ke Driver CSI vSphere di Google Distributed Cloud.

Daftar berikut menunjukkan tahap peluncuran 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 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 sepaket akan terus berfungsi di lingkungan khusus CSI. Fitur migrasi CSI mengalihkan panggilan operasi plugin dalam struktur ke driver CSI. Karena spesifikasi PersistentVolume tidak dapat diubah, spesifikasi ini masih didukung oleh plugin dalam struktur. Kumpulan fitur yang tersedia sama dengan plugin volume sepaket.

Set lengkap fitur CSI, seperti Ekspansi Volume dan Snapshot Volume, tidak tersedia untuk volume tersebut. Untuk memanfaatkan fitur ini, workload stateful harus sepenuhnya dimigrasikan 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 set lengkap fitur CSI.

Alat ini menyediakan cara untuk melakukan migrasi bergulir PersistentVolume dan PersistentVolumeClaim StatefulSet ke CSI dan tidak melibatkan periode nonaktif aplikasi. Alat ini mencadangkan resource Kubernetes di direktori lokal dan menetapkan ReclaimPolicy ke Retain sebelum migrasi. Jadi, tidak akan ada data yang hilang.

Batasan

  • Alat otomatis hanya didukung di 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.

./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 workload berjalan di cluster admin.

  • STS_NAME: nama StatefulSet.

  • STS_NAMESPACE: namespace StatefulSet.

  • INTREE_STORAGECLASS: nama StorageClass dalam struktur yang mendukung PersistentVolume StatefulSet.

  • CSI_STORAGECLASS: nama CSI StorageClass 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 masih dalam pratinjau.

Prosedur

Bagian ini memberikan langkah-langkah yang diperlukan untuk memigrasikan StatefulSet dari penyedia internal vCP dalam struktur 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 workload berjalan di cluster admin.

  • STS_NAME: nama StatefulSet.

  • STS_NAMESPACE: namespace StatefulSet.

  • INTREE_STORAGECLASS: nama StorageClass dalam struktur 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 membuat direktori ini agar alat dapat membuat direktori untuk Anda.

Perintah ini melakukan tugas berikut:

  1. Mencadangkan StatefulSet dan dependensinya seperti PersistentVolume, PersistentVolumeClaim, dan spesifikasi replika Pod di direktori kerja lokal.

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

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

  4. Membuat ulang StatefulSet, tetapi kolom PVCTemplate dalam spesifikasinya mengarah ke CSI StorageClass. Pengontrol StatefulSet harus dipetakan ke replika yang tidak memiliki induk lagi.