Pelajari cara memigrasikan inferensi Knative di VMware untuk menggunakan fleet sehingga Anda dapat melakukan upgrade ke Anthos Versi 1.8.
Penyajian Knative kini merupakan pengalaman yang terpisah dari produk Cloud Run terkelola dan kini disediakan sebagai komponen fleet di cluster Anda. Dengan menginstal inferensi Knative pada fitur VMware sebagai komponen fleet, Anda dapat mengelola dan mengupgrade penginstalan secara terpisah dari komponen fleet lainnya.
Pada tingkat tinggi, untuk memigrasikan inferensi Knative pada penginstalan VMware agar menggunakan fleet, Anda harus:
- Konfigurasikan penyaluran Knative Anda pada penginstalan VMware untuk memenuhi persyaratan perangkat.
- Aktifkan komponen fitur penayangan Knative di perangkat Anda.
Perlu diperhatikan bahwa server Kubernetes API tidak terpengaruh selama migrasi ini.
Untuk mengetahui detail tentang cara melakukan penginstalan baru inferensi Knative di VMware, lihat Menginstal penayangan Knative di VMware.
Sebelum memulai
Anda harus memenuhi persyaratan berikut:
Langkah-langkah ini mengharuskan inferensi Knative Anda di cluster VMware terdaftar ke fleet dan terlihat di Konsol Google Cloud:
Penginstalan Knative Anda di VMware berada di cluster yang menjalankan Anthos Versi 1.7 atau yang lebih lama.
Istio tidak lagi didukung di Anthos 1.8. Cloud Service Mesh versi 1.18 harus diinstal di fleet Anda dan penginstalan inferensi Knative Anda harus dikonfigurasi sebelum Anda mengupgrade cluster tersebut ke Versi 1.8.
Lihat petunjuk Cloud Service Mesh untuk mengetahui detail tentang penginstalan di Google Distributed Cloud.
Perhatikan bahwa Cloud Service Mesh mengharuskan cluster Anda menggunakan jenis mesin yang memiliki setidaknya empat vCPU, seperti
e2-standard-4
. Jika Anda perlu mengubah jenis mesin cluster, lihat Memigrasikan workload ke jenis mesin lain.Ada dua opsi untuk memigrasikan penayangan Knative ke Cloud Service Mesh, Anda dapat:
Mendapatkan alamat IP eksternal baru tempat Anda mengonfigurasi load balancer.
Gunakan kembali alamat IP load balancer yang ada.
Pastikan lingkungan command line Anda sudah dikonfigurasi dan sudah diupdate.
Bermigrasi ke fleet
Untuk mengupgrade Anthos ke Versi 1.8, Anda harus terlebih dahulu melakukan langkah-langkah berikut untuk memastikan inferensi Knative yang ada di penginstalan VMware dimigrasikan untuk menggunakan komponen fleet.
Mengakses cluster admin
Dapatkan jalur dan nama file untuk file kubeconfig cluster admin Anda, lalu
buat variabel lingkungan ADMIN_KUBECONFIG
:
export ADMIN_KUBECONFIG=[ADMIN_CLUSTER_KUBECONFIG]
Ganti [ADMIN_CLUSTER_KUBECONFIG] dengan jalur dan nama file ke file kubeconfig cluster admin Anda.
Mengonfigurasi setiap cluster pengguna
Buat variabel lingkungan lokal berikut untuk cluster pengguna:
Buat variabel lingkungan
USER_KUBECONFIG
dengan jalur file kubeconfig cluster pengguna Anda:export USER_KUBECONFIG=[USER_CLUSTER_KUBECONFIG]
Ganti [USER_CLUSTER_KUBECONFIG] dengan jalur dan nama file ke file kubeconfig cluster pengguna Anda.
Buat variabel lingkungan untuk konfigurasi berikut:
- ID project Google Cloud Anda.
- Lokasi resource Google Cloud Anda.
- Nama cluster pengguna.
export PROJECT_ID=$(kubectl get configmaps --namespace knative-serving config-observability --output jsonpath="{.data['metrics\.stackdriver-project-id']}") export CLUSTER_LOCATION=$(kubectl get configmaps --namespace knative-serving config-observability --output jsonpath="{.data['metrics\.stackdriver-gcp-location']}") export CLUSTER_NAME=$(kubectl get configmaps --namespace knative-serving config-observability --output jsonpath="{.data['metrics\.stackdriver-cluster-name']}")
Hapus konfigurasi
cloudrun
dari resource kustomOnPremUserCluster
pada cluster pengguna Anda:Pastikan
cloudRun
ditetapkan diOnPremUserCluster
:$ kubectl get onpremusercluster \ "${CLUSTER_NAME}" \ --namespace "${CLUSTER_NAME}-gke-onprem-mgmt" \ --kubeconfig="${ADMIN_KUBECONFIG}" \ --output=jsonpath="{.spec.cloudRun}"
Hasil:
{"enabled":true}
Hapus
cloudRun
dariOnPremUserCluster
:kubectl patch onpremusercluster \ "${CLUSTER_NAME}" \ --namespace "${CLUSTER_NAME}-gke-onprem-mgmt" \ --kubeconfig="${ADMIN_KUBECONFIG}" \ --type="merge" \ --patch '{"spec": {"cloudRun": null}}'
Validasi bahwa
cloudRun
berhasil dihapus dariOnPremUserCluster
dengan menjalankan perintahget
yang sama dan memverifikasi bahwa tidak ada konfigurasi yang ditampilkan:kubectl get onpremusercluster \ "${CLUSTER_NAME}" \ --namespace "${CLUSTER_NAME}-gke-onprem-mgmt" \ --kubeconfig="${ADMIN_KUBECONFIG}" \ --output=jsonpath="{.spec.cloudRun}"
Seharusnya tidak ada output ke terminal Anda.
Perbarui rahasia create-config cluster pengguna Anda:
Buat salinan YAML lokal dari file create-config:
kubectl get secret create-config \ --kubeconfig="${ADMIN_KUBECONFIG}" \ --namespace "${CLUSTER_NAME}" \ --output=jsonpath={.data.cfg} \ | base64 -d > "${CLUSTER_NAME}_create_secret.yaml"
Buka file
${CLUSTER_NAME}_create_secret.yaml
yang baru saja Anda buat di editor, lalu hapus kolomcloudrun
dari bagianspec
.Enkode Base64 file
${CLUSTER_NAME}_cluster_create_secret.yaml
menjadi file.b64
:cat "${CLUSTER_NAME}_create_secret.yaml" | base64 -w0 > "${CLUSTER_NAME}_create_secret.b64"
Di editor, buka file
.b64
lokal yang baru saja Anda buat, lalu salin string dari atributdata.cfg
untuk digunakan pada langkah berikutnya.Anda harus memastikan bahwa Anda hanya menyalin konten dari atribut
cfg
. Misalnya, jangan sertakan baris baru (\n
).Jalankan perintah berikut untuk mengedit secret di cluster pengguna Anda:
kubectl edit secret create-config --kubeconfig="${ADMIN_KUBECONFIG}" \ --namespace "${CLUSTER_NAME}"
Di editor yang terbuka, ganti kolom
data[cfg]
dengan string yang Anda salin dari file.b64
lokal, lalu simpan perubahan Anda.Pastikan perubahan Anda telah di-deploy ke cluster pengguna dan atribut
cloudrun
berhasil dihapus dari secretcreate-config
:kubectl get secret create-config \ --kubeconfig="${ADMIN_KUBECONFIG}" \ --namespace ${CLUSTER_NAME} \ --output=jsonpath={.data.cfg} \ | base64 -d
Konfigurasikan namespace
knative-serving
di cluster pengguna Anda:Hapus operator
cloudrun-operator
dari namespaceknative-serving
:kubectl delete deployments.apps --kubeconfig=${USER_KUBECONFIG} --namespace knative-serving cloudrun-operator
Tambahkan patch peta konfigurasi
config-network
di namespaceknative-serving
:kubectl patch configmap --kubeconfig=${USER_KUBECONFIG} --namespace knative-serving config-network --patch '{"metadata": {"annotations":{"knative.dev/example-checksum": null}}}'
Hapus konfigurasi
cloudrun.enabled
dari file konfigurasi cluster penggunauser-config.yaml
di penginstalan Google Distributed Cloud Anda.Atribut berikut harus dihapus dari dalam file
user-config.yaml
Anda:cloudRun: enabled: true
Saat Anda melakukan upgrade cluster ke Anthos Versi 1.8, perubahan konfigurasi ini akan di-deploy.
Jika memiliki beberapa cluster pengguna, Anda harus mengulangi semua langkah-langkah dalam bagian "Mengonfigurasi setiap cluster pengguna" ini untuk setiap cluster pengguna.
Mengonfigurasi komponen fleet
Aktifkan komponen penayangan Knative di perangkat Anda:
gcloud container fleet cloudrun enable --project=$PROJECT_ID
Untuk mengetahui detail dan opsi tambahan, lihat referensi gcloud container fleet cloudrun enable.
Opsional: Pastikan komponen fitur penayangan Knative telah diaktifkan:
Konsol
Lihat apakah komponen penayangan Knative sudah Diaktifkan di Konsol Google Cloud:
Command line
Lihat apakah status
appdevexperience
adalahENABLED
:gcloud container fleet features list --project=$PROJECT_ID
Untuk mengetahui detail dan opsi tambahan, lihat referensi daftar fitur fleet container gcloud.
Hasil:
NAME STATE appdevexperience ENABLED
Deploy resource kustom
CloudRun
untuk menginstal penyaluran Knative di VMware pada setiap cluster pengguna Anda. Secara default, versilatest
inferensi Knative di-deploy.Jalankan perintah
kubectl apply
berikut untuk men-deploy konfigurasi default resource kustomCloudRun
:cat <<EOF | kubectl apply -f - apiVersion: operator.run.cloud.google.com/v1alpha1 kind: CloudRun metadata: name: cloud-run spec: metricscollector: stackdriver: projectid: $PROJECT_ID gcpzone: $CLUSTER_LOCATION clustername: $CLUSTER_NAME secretname: "stackdriver-service-account-key" secretkey: "key.json" EOF
Mengonfigurasi Cloud Service Mesh
Konfigurasikan load balancer Cloud Service Mesh untuk setiap cluster pengguna Anda.
Anda dapat mengonfigurasi gateway masuk Cloud Service Mesh dengan mengonfigurasi alamat IP eksternal baru atau menggunakan kembali alamat IP yang sudah ada:
Dengan alamat IP eksternal baru yang diperoleh, Anda mengonfigurasi load balancer dengan mengikuti langkah-langkah dalam dokumentasi Cloud Service Mesh.
Perlu diingat bahwa opsi ini memastikan layanan penayangan Knative Anda dimulai ulang tanpa gangguan.
Alternatif: Gunakan langkah-langkah berikut untuk mengonfigurasi load balancer Cloud Service Mesh ke alamat IP Anda yang ada.
Konfigurasikan gateway layanan Anda ke Cloud Service Mesh dengan menjalankan perintah berikut:
export CURRENT_INGRESS_IP=$(kubectl get service --namespace gke-system istio-ingress --output jsonpath='{.spec.loadBalancerIP}') kubectl patch service --namespace istio-system istio-ingressgateway --patch "{\"spec\":{\"loadBalancerIP\": \"$CURRENT_INGRESS_IP\"}}" kubectl patch service --namespace gke-system istio-ingress --patch "{\"spec\":{\"loadBalancerIP\": null}}"
Hapus setelan konfigurasi Istio saat ini:
kubectl patch configmap --namespace knative-serving config-istio --patch '{"data":{"local-gateway.cluster-local-gateway": null}}' kubectl patch configmap --namespace knative-serving config-istio --patch '{"data":{"gateway.gke-system-gateway": null}}'
Verifikasi migrasi
Anda dapat memeriksa apakah appdevexperience-operator
sudah aktif dan berjalan untuk memastikan bahwa inferensi Knative Anda di VMware telah
berhasil dimigrasikan ke fleet Anda.
Untuk setiap cluster pengguna, jalankan perintah berikut:
kubectl get deployment -n appdevexperience appdevexperience-operator
Operator appdevexperience-operator
harus menampilkan 1/1
sebagai siap, misalnya:
NAME READY UP-TO-DATE AVAILABLE AGE
appdevexperience-operator 1/1 1 1 1h
Jika operator gagal mencapai status siap, Anda dapat melihat halaman workload cluster di Konsol Google Cloud untuk mengidentifikasi masalah resource:
Buka workload Google Kubernetes Engine
Upgrade cluster Anda
Setelah memigrasikan penayangan Knative pada penginstalan VMware untuk menggunakan komponen fisik, Anda dapat mengupgrade cluster ke Anthos Versi 1.8. Ikuti petunjuk terperinci di Mengupgrade GKE On-Prem.
Pemecahan masalah
- Proses upgrade cluster pengguna Anda gagal diselesaikan
Pod
cluster-local-gateway
di namespacegke-system
mungkin mencegah cluster pengguna Anda menyelesaikan upgrade ke Anthos Versi 1.8. Podcluster-local-gateway
tidak lagi diperlukan dan dapat dihapus dengan aman.Untuk membantu proses upgrade secara manual, Anda dapat menghapus pod
cluster-local-gateway
secara manual dengan memperkecil skala replika deployment menjadi0
. Contoh:Perkecil
cluster-local-gateway
:kubectl scale deployment cluster-local-gateway --replicas 0 --namespace gke-system
Pod
cluster-local-gateway
di namespacegke-system
dan semua beban kerja di namespaceknative-serving
akan dihapus.Tunggu hingga proses upgrade selesai.