Dokumen ini menunjukkan cara memigrasikan datastore vSphere ke Storage Policy Based Management (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 Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise umum.
1.30: GA
1.29: Pratinjau
1.16 dan yang lebih lama: Tidak tersedia
Konteks
Ada empat tempat yang dapat Anda gunakan untuk menentukan datastore dalam file konfigurasi cluster:
Cluster admin: vCenter.datastore
Cluster pengguna di tingkat cluster, yang mencakup node bidang kontrol dan semua kumpulan node pekerja: 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 kosong,
userCluster.vCenter.datastore
akan mewarisi nilai dariadminCluster.vCenter.datastore
.Jika kosong,
userCluster.nodePools[i].vsphere.datastore
akan mewarisi nilai dariuserCluster.vCenter.datastore
.
Demikian pula, ada empat tempat untuk menentukan kebijakan penyimpanan:
Cluster admin 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
Node pool 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 ketersediaan tinggi (HA) yang didukung. Jika cluster admin Anda adalah admin non-HA, Anda harus terlebih dahulu memigrasikan cluster admin ke HA.
Memigrasikan cluster pengguna
Langkah-langkah yang Anda gunakan untuk migrasi bergantung pada apakah Anda ingin memigrasikan seluruh cluster pengguna, atau jika Anda ingin memigrasikan node panel kontrol dan node pool pekerja secara terpisah. Opsi ini memungkinkan Anda memilih kebijakan penyimpanan yang berbeda untuk node bidang kontrol dan node pool pekerja.
Untuk membantu merencanakan periode pemeliharaan, perhatikan hal-hal berikut:
Memigrasikan seluruh cluster hanya memerlukan satu update cluster.
Memigrasikan node bidang kontrol dan kumpulan node pekerja 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 berada di 1.30 atau yang lebih tinggi.
Ubah file konfigurasi cluster pengguna, sebagai berikut:
Tetapkan kolom
vCenter.storagePolicyName
dengan nama kebijakan penyimpanan.Hapus atau jadikan baris berikut sebagai komentar 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
Update 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 dipaketkan
Setelah memperbarui setelan konfigurasi di cluster, Anda perlu
memperbarui StorageClass
yang dipaketkan.
Dapatkan
StorageClass
default saat ini untukvsphere-csi-driver
yang dipaketkan, yang bernamastandard-rwo
, dan 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
Update 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
Khusus cluster pengguna Kubeception
Untuk cluster pengguna Kubeception, Anda perlu mengupdate StorageClass
untuk
node panel 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 akan berjalan
di cluster pengguna itu sendiri. Jika Controlplane V2 tidak diaktifkan, control plane untuk cluster pengguna akan 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 control plane cluster pengguna di cluster admin:
Dapatkan
StorageClass
default saat ini untukvsphere-csi-driver
yang dipaketkan, yang bernamaUSER_CLUSTER_NAME-csi
, dan 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
Update 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 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, kumpulan 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 pekerja secara terpisah.
Khusus versi 1.29: Mendapatkan konfigurasi cluster saat ini. Langkah ini tidak diperlukan jika cluster pengguna menggunakan 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 level: 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 panel 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
Update 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 memperbarui 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
Update cluster pengguna:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
Atau, 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
level cluster tidak akan digunakan oleh
komponen cluster apa pun. Anda dapat membiarkan bagian vCenter
level cluster
seperti 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 diganti 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
Update cluster pengguna:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
Perintah pembaruan ini tidak akan membuat perubahan apa pun pada cluster, tetapi akan memperbarui kolom
vCenter.datastore
danvCenter.storagePolicyName
sisi server (OnPremUserCluster
).
Mengupdate StorageClass
yang dipaketkan
Setelah memperbarui setelan konfigurasi, Anda perlu mengupdate StorageClass
yang dipaketkan.
Dapatkan
StorageClass
default saat ini untukvsphere-csi-driver
yang dipaketkan, yang bernamastandard-rwo
, dan 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
Update 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
Khusus cluster pengguna Kubeception
Untuk cluster pengguna Kubeception, Anda perlu mengupdate StorageClass
untuk
node panel 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 akan berjalan
di cluster pengguna itu sendiri. Jika Controlplane V2 tidak diaktifkan, control plane untuk cluster pengguna akan 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 control plane cluster pengguna di cluster admin:
Dapatkan
StorageClass
default saat ini untukvsphere-csi-driver
yang dipaketkan, yang bernamaUSER_CLUSTER_NAME-csi
, dan 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
Update 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 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
Update 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.