Bermigrasi dari Pengontrol Layanan Kanonik Dalam Cluster ke yang Terkelola
Catatan: Layanan Kanonik didukung secara otomatis di Cloud Service Mesh versi 1.6.8 dan yang lebih baru.
Panduan ini menjelaskan langkah-langkah untuk bermigrasi dari Pengontrol Layanan Kanonik dalam cluster ke Pengontrol Layanan Kanonik Terkelola.
Pengontrol Layanan Kanonik dalam cluster tidak digunakan lagi dan tidak akan lagi menerima update. Meskipun deployment pengontrol dalam cluster yang ada akan terus beroperasi, sebaiknya migrasikan ke Pengontrol Layanan Kanonis terkelola untuk memastikan kompatibilitas dengan rilis mendatang, akses ke fitur terbaru, dan dukungan berkelanjutan. Semua penginstalan Cloud Service Mesh dengan asmcli dari versi 1.25 akan disediakan dengan pengontrol Canonical Service terkelola.
1. Mengaktifkan fitur fleet Cloud Service Mesh
Pengontrol Managed Canonical Service diinstal sebagai bagian dari fitur fleet Cloud Service Mesh, yang diaktifkan menggunakan perintah berikut:
gcloud container fleet mesh enable --project FLEET_PROJECT_ID
Ganti FLEET_PROJECT_ID
dengan ID project Host Flotte Anda. Umumnya, FLEET_PROJECT_ID memiliki nama yang sama dengan project.
Perhatikan bahwa jika Anda berencana mendaftarkan beberapa cluster, pengaktifan Cloud Service Mesh akan dilakukan di tingkat fleet sehingga Anda hanya perlu menjalankan perintah ini satu kali.
Memberikan izin ke akun layanan Cloud Service Mesh
Jika project cluster berbeda dengan project host fleet, Anda harus mengizinkan akun layanan Cloud Service Mesh di project fleet untuk mengakses project cluster.
Anda hanya perlu melakukan ini sekali untuk setiap project cluster. Jika sebelumnya Anda mengonfigurasi Cloud Service Mesh terkelola untuk kombinasi project cluster dan fleet ini, perubahan ini telah diterapkan dan Anda tidak perlu menjalankan perintah berikut.
Berikan izin akun layanan di project fleet untuk mengakses project cluster:
gcloud projects add-iam-policy-binding "CLUSTER_PROJECT_ID" \
--member "serviceAccount:service-FLEET_PROJECT_NUMBER@gcp-sa-servicemesh.iam.gserviceaccount.com" \
--role roles/anthosservicemesh.serviceAgent
Ganti CLUSTER_PROJECT_ID dengan project ID untuk cluster Anda dan FLEET_PROJECT_NUMBER dengan nomor project untuk fleet Anda.
Untuk menentukan nomor project untuk armada Anda, lihat petunjuk di dokumen project Google Cloud.
2. Menonaktifkan Pengontrol Layanan Kanonik dalam cluster
Pengontrol Layanan Kanonik Terkelola tidak dapat berfungsi bersama pengontrol Layanan Kanonik dalam cluster. Oleh karena itu, Anda harus menonaktifkan pengontrol dalam cluster.
Periksa Pengontrol Dalam Cluster: Verifikasi apakah pengontrol kanonis dalam cluster ada.
kubectl get deployment canonical-service-controller-manager -n asm-system
Menghapus Pengontrol Dalam Cluster: Jika deployment ditemukan, Anda dapat menghapusnya (dan seluruh namespace asm-system) dengan menjalankan perintah berikut:
kubectl delete namespace asm-system
3. Memverifikasi bahwa Managed Canonical Controller berfungsi
Pengontrol Layanan Kanonik Terkelola melaporkan statusnya dalam status fitur, sehingga Anda dapat mengonfirmasi bahwa penginstalan berfungsi dengan benar dengan memeriksa status fitur:
Periksa Status Fitur: Ambil status fitur menggunakan perintah berikut:
gcloud container fleet mesh describe --project FLEET_PROJECT_ID
Verifikasi Status: Periksa status cluster dan pastikan
state.code
adalahOK
.- Penting: Mungkin diperlukan waktu hingga 15 menit agar status bertransisi
ke
OK
. Tunggu dan jalankan kembali perintah tersebut. - Lanjutkan ke langkah berikutnya hanya jika
state.code
adalahOK
. - Jika
state.code
tidak menjadiOK
setelah 15 menit, lihat Memecahkan masalah Managed Canonical Service Controller untuk mendapatkan panduan pemecahan masalah.
Contoh output:
membershipStates: projects/<project-number>/locations/<location>/memberships/<membership-name>: state: code: OK description: Revision(s) ready for use: istiod-asm-183-2.
- Penting: Mungkin diperlukan waktu hingga 15 menit agar status bertransisi
ke
Periksa apakah Pengontrol Kanonik Terkelola berfungsi: Pastikan bahwa pengontrol kanonis terkelola berfungsi dengan benar dengan men-deploy pod dengan sidecar yang dimasukkan dan periksa apakah pengontrol secara otomatis membuat layanan kanonis yang sesuai.
Buat namespace dengan injeksi sidecar otomatis yang diaktifkan:
kubectl create namespace NAMESPACE_NAME
Ikuti bagian Mengaktifkan injeksi sidecar otomatis untuk mengaktifkan injeksi sidecar otomatis di namespace yang baru dibuat.
Buat file YAML bernama
simple_pod.yaml
dengan konten berikut:apiVersion: v1 kind: Pod metadata: name: simple-pod labels: app: my-app spec: containers: - name: my-container image: nginx:latest ports: - containerPort: 80
Label
app
menentukan nama layanan kanonis. Untuk informasi selengkapnya, lihat Menentukan Layanan Canonical.Deploy pod dengan perintah berikut. Ganti NAMESPACE_NAME dengan nama namespace tempat Anda mengaktifkan injeksi sidecar otomatis.
kubectl apply -f simple_pod.yaml -n NAMESPACE_NAME
Pastikan pod telah dibuat:
kubectl get pods -n NAMESPACE_NAME
Contoh output:
NAME READY STATUS RESTARTS AGE simple-pod 2/2 Running 0 9s
Note
: Pastikan kolom READY menampilkan2/2
. Hal ini menunjukkan bahwa penampung utama dan proxy sidecar berjalan dengan benar. Jika Anda melihat nilai yang berbeda, kemungkinan injeksi sidecar otomatis tidak diaktifkan untuk namespace.Memverifikasi Pembuatan Layanan Kanonik: Jalankan perintah berikut untuk mencantumkan semua Layanan Kanonik di namespace. Pastikan
my-app
Layanan Kanonik dibuat.kubectl get canonicalservices -n NAMESPACE_NAME
Contoh output:
NAME AGE my-app 3s
Pembersihan: Hapus pod, layanan kanonis, dan namespace:
kubectl delete -f simple_pod.yaml -n NAMESPACE_NAME kubectl delete canonicalservices my-app -n NAMESPACE_NAME kubectl delete namespace NAMESPACE_NAME
Pemecahan masalah:
- Jika layanan kanonis yang diperlukan tidak dibuat, lihat Memecahkan masalah Layanan Kanonis di Cloud Service Mesh.
- Jika masalah berlanjut, Anda dapat kembali ke pengontrol dalam cluster. Lihat Kembali ke Pengontrol Layanan Kanonik Dalam Cluster.
Kembali ke Pengontrol Layanan Kanonik Dalam Cluster
Jika mengalami masalah dengan Pengontrol Layanan Kanonik Terkelola, Anda dapat menginstal ulang pengontrol dalam cluster dengan perintah berikut:
kubectl apply -f \
https://raw.githubusercontent.com/GoogleCloudPlatform/anthos-service-mesh-packages/release-1.25/asm/canonical-service/controller.yaml
Langkah berikutnya
Pelajari:
- Layanan Kanonis
- Praktik terbaik di Layanan Canonical
- Menentukan Layanan Kanonis
- Menyelesaikan masalah Layanan Kanonik