Dokumen ini menunjukkan cara memigrasikan datastore vSphere ke Pengelolaan Berbasis Kebijakan Penyimpanan (SPBM).
Halaman ini ditujukan bagi spesialis Penyimpanan yang mengonfigurasi dan mengelola performa, penggunaan, dan biaya penyimpanan. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten, lihat Peran dan tugas pengguna GKE umum. Google Cloud
1.30: GA
1.29: Pratinjau
1.16 dan yang lebih lama: Tidak tersedia
Konteks
Ada empat tempat tempat Anda dapat menentukan datastore dalam file konfigurasi cluster:
Admin cluster: vCenter.datastore
Cluster pengguna di tingkat cluster, yang mencakup node bidang kontrol dan semua kumpulan worker node: vCenter.datastore
Node bidang kontrol cluster pengguna: masterNode.vsphere.datastore
Kumpulan node pekerja cluster pengguna: nodePools[i].vsphere.datastore
Pewarisan untuk kolom ini adalah sebagai berikut:
adminCluster.vCenter.datastore -> userCluster.vCenter.datastore -> (userCluster.masterNode.vsphere.datastore and userCluster.nodePools[i].vsphere.datastore)
Contoh:
Jika
userCluster.vCenter.datastore
kosong, nilai akan diwarisi dariadminCluster.vCenter.datastore
.Jika
userCluster.nodePools[i].vsphere.datastore
kosong, nilai tersebut akan diwarisi dariuserCluster.vCenter.datastore
.
Demikian pula, ada empat tempat untuk menentukan kebijakan penyimpanan:
Admin cluster vCenter.storagePolicyName
Cluster pengguna di tingkat cluster, yang mencakup node bidang kontrol dan semua node pool pekerja: vCenter.storagePolicyName
Node bidang kontrol cluster pengguna: masterNode.vsphere.storagePolicyName
Kumpulan node pekerja cluster pengguna: nodePools[i].vsphere.storagePolicyName
Pewarisan untuk kolom storagePolicyName
sama dengan pewarisan untuk kolom
datastore
.
Sebelum memulai
- Proses ini adalah migrasi satu arah. Kami tidak mendukung migrasi kembali ke status sebelumnya.
- Datastore harus kompatibel dengan kebijakan penyimpanan baru yang akan Anda tetapkan.
- Hanya cluster admin dengan ketersediaan tinggi (HA) yang didukung. Jika cluster admin Anda adalah admin non-HA, Anda harus memigrasikan cluster admin ke HA terlebih dahulu.
Memigrasikan cluster pengguna
Langkah-langkah yang Anda gunakan untuk migrasi bergantung pada apakah Anda ingin memigrasikan seluruh cluster pengguna, atau apakah Anda ingin memigrasikan node bidang kontrol dan kumpulan node pekerja secara terpisah. Opsi ini memungkinkan Anda memilih kebijakan penyimpanan yang berbeda untuk node bidang kontrol dan node pool pekerja.
Untuk membantu merencanakan masa pemeliharaan, perhatikan hal berikut:
Memigrasikan seluruh cluster hanya memerlukan satu update cluster.
Memigrasikan kumpulan node bidang kontrol dan worker node secara terpisah memerlukan dua update cluster.
Seluruh cluster
Gunakan langkah-langkah ini jika Anda ingin memigrasikan seluruh cluster, termasuk semua node bidang kontrol dan kumpulan node pekerja. Versi cluster pengguna Anda harus 1.30 atau yang lebih tinggi.
Ubah file konfigurasi cluster pengguna, sebagai berikut:
Tetapkan kolom
vCenter.storagePolicyName
dengan nama kebijakan penyimpanan.Hapus atau jadikan sebagai komentar hal berikut jika ditentukan:
- Kolom
vCenter.datastore
- Bagian
masterNode.vsphere
nodepools[i].vsphere.datastore
nodepools[i].vsphere.storagePolicyName
- Kolom
Contoh konfigurasi berikut menunjukkan perubahan ini.
Sebelum perubahan:
vCenter: datastore: ds-1
Setelah perubahan:
vCenter: storagePolicyName: sp-1 # datastore: ds-1
Perbarui cluster pengguna:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG
: jalur file kubeconfig cluster admin.USER_CLUSTER_CONFIG
: jalur file konfigurasi cluster pengguna.
Mengupdate StorageClass
yang di-bundle
Setelah memperbarui setelan konfigurasi di cluster, Anda perlu memperbarui StorageClass
yang dibundel.
Dapatkan
StorageClass
default saat ini untukvsphere-csi-driver
yang dibundel, yang bernamastandard-rwo
, lalu simpan ke file lokal bernamastorage-class.yaml
.kubectl get storageclass standard-rwo -oyaml \ --kubeconfig USER_CLUSTER_KUBECONFIG > storage-class.yaml
Ganti
USER_CLUSTER_KUBECONFIG
dengan jalur kubeconfig cluster pengguna.Buat salinan
storage-class.yaml
sebagai tindakan pencegahan karena Anda perlu melakukan perubahan pada file:cp storage-class.yaml storage-class.yaml-backup.yaml
Hapus
StorageClass
default dari cluster:kubectl delete storageclass standard-rwo \ --kubeconfig USER_CLUSTER_KUBECONFIG
Perbarui konfigurasi di
storage-class.yaml
sebagai berikut:Hapus atau jadikan kolom berikut sebagai komentar:
parameters.datastoreURL
resourceVersion
Tambahkan kolom
parameters.storagePolicyName
dan tetapkan ke nama kebijakan penyimpanan.
Contoh konfigurasi berikut menunjukkan perubahan ini.
Sebelum perubahan:
apiVersion: storage.k8s.io/v1 kind: StorageClass name: standard-rwo Parameters: ... datastoreURL: ds//ds-1
Setelah perubahan:
apiVersion: storage.k8s.io/v1 kind: StorageClass name: standard-rwo Parameters: ... storagePolicyName: sp-1
Terapkan
StorageClass
yang diubah ke cluster pengguna:kubectl apply -f storage-class.yaml \ --kubeconfig USER_CLUSTER_KUBECONFIG
Hanya cluster pengguna Kubeception
Untuk cluster pengguna Kubeception, Anda perlu mengupdate StorageClass
untuk node bidang kontrol cluster pengguna di cluster admin. Cluster Kubeception
memiliki kolom konfigurasi enableControlplaneV2
yang ditetapkan ke false
.
Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna berjalan
di cluster pengguna itu sendiri. Jika Controlplane V2 tidak diaktifkan, bidang
kontrol untuk cluster pengguna berjalan di cluster admin, yang disebut sebagai
kubeception.
Jalankan perintah berikut untuk menentukan apakah cluster telah mengaktifkan Controlplane V2:
kubectl get onpremuserclusters --kubeconfig USER_CLUSTER_KUBECONFIG \ -n kube-system -o jsonpath='{.items[0].spec.enableControlplaneV2}' && echo
Jika outputnya adalah false
, selesaikan langkah-langkah berikut untuk mengupdate
StorageClass
default untuk node panel kontrol cluster pengguna di cluster admin:
Dapatkan
StorageClass
default saat ini untukvsphere-csi-driver
yang dibundel, yang diberi namaUSER_CLUSTER_NAME-csi
, lalu simpan ke file lokal bernamastorage-class-kubeception.yaml
.kubectl get storageclass USER_CLUSTER_NAME-csi -oyaml \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG > storage-class-kubeception.yaml
Ganti
ADMIN_CLUSTER_KUBECONFIG
dengan jalur kubeconfig cluster admin.Buat salinan
storage-class-kubeception.yaml
sebagai tindakan pencegahan karena Anda perlu melakukan perubahan pada file:cp storage-class-kubeception.yaml storage-class-kubeception-backup.yaml
Hapus
StorageClass
default dari cluster:kubectl delete storageclass USER_CLUSTER_NAME-csi \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Perbarui konfigurasi di
storage-class-kubeception.yaml
sebagai berikut:Hapus atau jadikan kolom berikut sebagai komentar:
parameters.datastoreURL
resourceVersion
Tambahkan kolom
parameters.storagePolicyName
dan tetapkan ke nama kebijakan penyimpanan.
Contoh konfigurasi berikut menunjukkan perubahan ini.
Sebelum perubahan:
apiVersion: storage.k8s.io/v1 kind: StorageClass name: standard-rwo Parameters: ... datastoreURL: ds//ds-1
Setelah perubahan:
apiVersion: storage.k8s.io/v1 kind: StorageClass name: standard-rwo Parameters: ... storagePolicyName: sp-1
Terapkan
StorageClass
yang telah diubah ke cluster admin:kubectl apply -f storage-class-kubeception.yaml \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Setelah migrasi
Jika Anda membuat node pool baru setelah migrasi, pool baru akan mengikuti aturan pewarisan sesuai dengan cluster yang diperbarui.
Misalnya, Anda memigrasikan vCenter.datastore
ke kebijakan penyimpanan.
Sekarang, jika Anda membuat node pool baru dan membiarkan
nodePools[i].vsphere.datastore
dan nodePools[i].vsphere.storagePolicyName
kosong, node pool baru akan mewarisi kebijakan penyimpanan yang ditentukan di
vCenter.storagePolicyName
.
Node secara terpisah
Gunakan langkah-langkah ini jika Anda ingin memigrasikan node bidang kontrol dan kumpulan node worker secara terpisah.
Khusus Versi 1.29: Dapatkan konfigurasi cluster saat ini. Langkah ini tidak diperlukan jika cluster pengguna berada di versi 1.30 atau yang lebih tinggi.
gkectl get-config cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --cluster-name USER_CLUSTER_NAME \ --output-dir ./gen-files
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG
: jalur file kubeconfig untuk cluster admin.USER_CLUSTER_NAME
: nama cluster pengguna.
Di
./gen-files
, temukanuser-cluster.yaml
.Untuk mengetahui informasi selengkapnya tentang cara mendapatkan file konfigurasi, lihat Membuat file konfigurasi dari cluster.
File konfigurasi yang dihasilkan memiliki nama
datastore
yang ditetapkan di setiap tingkat: cluster,masterNode
(untuk node bidang kontrol), dannodepools
(untuk node pekerja), seperti yang ditunjukkan dalam contoh berikut:apiVersion: v1 kind: UserCluster ... # VCenter config in cluster level: vCenter: datastore: ds-1 ... # VCenter config in master node level: masterNode: vsphere: datastore: ds-1 ... # VCenter config in nodepool level: nodepools: - name: pool-1 vsphere: datastore: ds-1 - name: pool-2 vsphere: datastore: ds-1
Memigrasikan node bidang kontrol
Lakukan langkah-langkah berikut untuk memigrasikan node bidang kontrol:
Buat perubahan berikut dalam file konfigurasi cluster pengguna:
- Tetapkan kolom
masterNode.vsphere.storagePolicyName
dengan nama kebijakan penyimpanan. - Hapus atau jadikan kolom
masterNode.vsphere.datastore
sebagai komentar.
Contoh konfigurasi berikut menunjukkan perubahan ini.
Sebelum perubahan:
masterNode: vsphere: datastore: ds-1
Setelah perubahan:
masterNode: vsphere: # datastore: ds-1 storagePolicyName: sp-1
- Tetapkan kolom
Perbarui cluster pengguna:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG
: jalur file kubeconfig cluster admin.USER_CLUSTER_CONFIG
: jalur file konfigurasi cluster pengguna.
Tunggu hingga perintah update selesai sebelum mengupdate kumpulan node.
Memigrasikan node pool
Lakukan langkah-langkah berikut untuk memigrasikan semua node pool:
Buat perubahan berikut dalam file konfigurasi cluster pengguna:
- Tetapkan setiap kolom
nodePools[i].vsphere.storagePolicyName
dengan nama kebijakan penyimpanan. - Hapus atau jadikan setiap kolom
nodePools[i].vsphere.datastore
sebagai komentar.
Contoh konfigurasi berikut menunjukkan perubahan ini.
Sebelum perubahan:
nodepools: - name: pool-1 vsphere: datastore: ds-1 - name: pool-2 vsphere: datastore: ds-1
Setelah perubahan:
nodepools: - name: pool-1 vsphere: # datastore: ds-1 storagePolicyName: sp-1 - name: pool-2 vsphere: # datastore: ds-1 storagePolicyName: sp-1
- Tetapkan setiap kolom
Perbarui cluster pengguna:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
Secara opsional, perbarui kebijakan penyimpanan di tingkat cluster
Untuk cluster pengguna, kolom datastore
dan storagePolicyName
di bagian
vCenter
tingkat cluster adalah nilai default yang digunakan oleh bagian masterNode
dan nodepools
. Setelah Anda melakukan langkah-langkah sebelumnya, setelan vCenter
datastore
dan storagePolicyName
tingkat cluster tidak akan digunakan oleh komponen cluster mana pun. Anda dapat membiarkan bagian vCenter
tingkat cluster
apa adanya atau memperbaruinya agar konsisten dengan masterNode
dan nodepools
.
Jika Anda membiarkan setelan seperti apa adanya, sebaiknya tambahkan komentar
di atas bagian vCenter
tingkat cluster yang menyatakan bahwa setelan tersebut
diabaikan karena digantikan oleh setelan di bagian masterNode
dan
nodepools
.
Jika mau, Anda dapat mengubah bagian vCenter
tingkat cluster agar cocok dengan bagian masterNode
dan nodepools
, lalu memperbarui cluster menggunakan langkah-langkah berikut:
Ubah file konfigurasi cluster pengguna, sebagai berikut:
- Tetapkan kolom
vCenter.storagePolicyName
dengan nama kebijakan penyimpanan. - Hapus atau jadikan kolom
vCenter.datastore
sebagai komentar.
- Tetapkan kolom
Perbarui cluster pengguna:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
Perintah update ini tidak akan membuat perubahan apa pun pada cluster, tetapi akan memperbarui kolom
OnPremUserCluster
vCenter.datastore
danvCenter.storagePolicyName
di sisi server.
Mengupdate StorageClass
yang di-bundle
Setelah memperbarui setelan konfigurasi, Anda perlu memperbarui StorageClass
yang dibundel.
Dapatkan
StorageClass
default saat ini untukvsphere-csi-driver
yang dibundel, yang bernamastandard-rwo
, lalu simpan ke file lokal bernamastorage-class.yaml
.kubectl get storageclass standard-rwo -oyaml \ --kubeconfig USER_CLUSTER_KUBECONFIG > storage-class.yaml
Ganti
USER_CLUSTER_KUBECONFIG
dengan jalur kubeconfig cluster pengguna.Buat salinan
storage-class.yaml
sebagai tindakan pencegahan karena Anda perlu melakukan perubahan pada file:cp storage-class.yaml storage-class.yaml-backup.yaml
Hapus
StorageClass
default dari cluster:kubectl delete storageclass standard-rwo \ --kubeconfig USER_CLUSTER_KUBECONFIG
Perbarui konfigurasi di
storage-class.yaml
sebagai berikut:Hapus atau jadikan kolom berikut sebagai komentar:
parameters.datastoreURL
resourceVersion
Tambahkan kolom
parameters.storagePolicyName
dan tetapkan ke nama kebijakan penyimpanan.
Contoh konfigurasi berikut menunjukkan perubahan ini.
Sebelum perubahan:
apiVersion: storage.k8s.io/v1 kind: StorageClass name: standard-rwo Parameters: ... datastoreURL: ds//ds-1
Setelah perubahan:
apiVersion: storage.k8s.io/v1 kind: StorageClass name: standard-rwo Parameters: ... storagePolicyName: sp-1
Terapkan
StorageClass
yang diubah ke cluster pengguna:kubectl apply -f storage-class.yaml \ --kubeconfig USER_CLUSTER_KUBECONFIG
Hanya cluster pengguna Kubeception
Untuk cluster pengguna Kubeception, Anda perlu mengupdate StorageClass
untuk node bidang kontrol cluster pengguna di cluster admin. Cluster Kubeception
memiliki kolom konfigurasi enableControlplaneV2
yang ditetapkan ke false
.
Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna berjalan
di cluster pengguna itu sendiri. Jika Controlplane V2 tidak diaktifkan, bidang
kontrol untuk cluster pengguna berjalan di cluster admin, yang disebut sebagai
kubeception.
Jalankan perintah berikut untuk menentukan apakah cluster telah mengaktifkan Controlplane V2:
kubectl get onpremuserclusters --kubeconfig USER_CLUSTER_KUBECONFIG \ -n kube-system -o jsonpath='{.items[0].spec.enableControlplaneV2}' && echo
Jika outputnya adalah false
, selesaikan langkah-langkah berikut untuk mengupdate
StorageClass
default untuk node panel kontrol cluster pengguna di cluster admin:
Dapatkan
StorageClass
default saat ini untukvsphere-csi-driver
yang dibundel, yang diberi namaUSER_CLUSTER_NAME-csi
, lalu simpan ke file lokal bernamastorage-class-kubeception.yaml
.kubectl get storageclass USER_CLUSTER_NAME-csi -oyaml \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG > storage-class-kubeception.yaml
Ganti
ADMIN_CLUSTER_KUBECONFIG
dengan jalur kubeconfig cluster admin.Buat salinan
storage-class-kubeception.yaml
sebagai tindakan pencegahan karena Anda perlu melakukan perubahan pada file:cp storage-class-kubeception.yaml storage-class-kubeception-backup.yaml
Hapus
StorageClass
default dari cluster:kubectl delete storageclass USER_CLUSTER_NAME-csi \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Perbarui konfigurasi di
storage-class-kubeception.yaml
sebagai berikut:Hapus atau jadikan kolom berikut sebagai komentar:
parameters.datastoreURL
resourceVersion
Tambahkan kolom
parameters.storagePolicyName
dan tetapkan ke nama kebijakan penyimpanan.
Contoh konfigurasi berikut menunjukkan perubahan ini.
Sebelum perubahan:
apiVersion: storage.k8s.io/v1 kind: StorageClass name: standard-rwo Parameters: ... datastoreURL: ds//ds-1
Setelah perubahan:
apiVersion: storage.k8s.io/v1 kind: StorageClass name: standard-rwo Parameters: ... storagePolicyName: sp-1
Terapkan
StorageClass
yang telah diubah ke cluster admin:kubectl apply -f storage-class-kubeception.yaml \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Memigrasikan cluster admin
Pastikan cluster admin juga diperbarui dengan nama kebijakan penyimpanan.
Buat perubahan berikut dalam file konfigurasi cluster admin:
- Hapus atau jadikan kolom
vCenter.datastore
sebagai komentar. - Tetapkan kolom
vCenter.storagePolicyName
dengan nama kebijakan penyimpanan.
- Hapus atau jadikan kolom
Perbarui cluster admin:
gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG
: jalur ke file kubeconfig cluster admin.ADMIN_CLUSTER_CONFIG
: jalur ke file konfigurasi cluster admin.
Migrasi penyimpanan dengan SPBM
Setelah migrasi datastore ke SPBM, cluster Anda kini menggunakan SPBM. Namun, migrasi tidak memindahkan workload penyimpanan apa pun (seperti disk data mesin atau volume penampung) dari datastore lama.
Untuk memindahkan workload penyimpanan, lihat Migrasi penyimpanan dengan Pengelolaan Berbasis Kebijakan Penyimpanan.