Gunakan panduan ini untuk memigrasikan workload Anda ke Cloud Run. Secara umum, memigrasikan workload mengharuskan Anda untuk melakukan porting pada salah satu fitur berbasis Kubernetes, lalu men-deploy ulang setiap layanan yang ada ke Cloud Run.
Manfaat utama bermigrasi ke Cloud Run:
Produk serverless yang terkelola sepenuhnya dan menerapkan spesifikasi Knative Serve API dan mematuhi kontrak container.
v1 Admin API dari Cloud Run dirancang untuk memaksimalkan portabilitas dengan penayangan Knative.
Pengalaman pengguna serupa di seluruh penayangan Cloud Run dan Knative:
- Grup perintah
gcloud run
digunakan di kedua produk. - Perilaku dan tata letak antarmuka pengguna yang serupa di Konsol Google Cloud.
- Grup perintah
Sebelum memulai
Fitur Google Kubernetes Engine berikut tidak didukung di Cloud Run, termasuk:
- Fitur cluster dan pod, misalnya Startup, Pemeriksaan Keaktifan dan Kesiapan, serta Penemuan Layanan.
- Konfigurasi:
- ConfigMaps - Anda dapat mengubah ConfigMaps menjadi rahasia dengan Secret Manager.
- GPU NVIDIA
Kontrol akses:
Anda dapat menggunakan IAM di Cloud Run untuk mendapatkan kontrol yang sama atas akses ke resource Anda. Pertimbangkan juga untuk menggunakan Identitas layanan.
Pertimbangan migrasi
Anda harus meninjau dan memahami perbedaan berikut di seluruh produk untuk memastikan bahwa Anda dapat mentransfer semua dependensi dan persyaratan Anda.
Rahasia
Di Cloud Run, Anda dapat memilih untuk memasang secret sebagai variabel atau volume lingkungan, tetapi secret yang berisi informasi sensitif harus disimpan di Secret Manager.
Perbedaan penting antara secret di Secret Manager dan secret Kubernetes:
Fitur | Secret Manager secrets | Rahasia Kubernetes |
---|---|---|
Karakter yang diizinkan dalam nama | [a-zA-Z0-9_-]{1,255} |
[a-z0-9-.]{1,253} |
Pembuatan Versi | Rahasia memiliki versi | Tidak ada dukungan |
Payload Rahasia | []byte tunggal |
Peta: <string, string> |
Pelajari cara menggunakan Secret Manager untuk membuat secret berversi untuk kunci rahasia layanan penayangan Knative Anda.
Networking
Gunakan informasi berikut untuk membantu Anda mentransfer konfigurasi jaringan yang ada ke Cloud Run.
- Endpoint Layanan
- Kubernetes Endpoints layanan penyaluran Knative Anda tidak didukung di Cloud Run. Pelajari endpoint unik di Cloud Run lebih lanjut.
- Pemetaan Domain
- DomainMapping API Cloud Run kompatibel dengan penayangan Knative. Namun, Cloud Run menawarkan pemetaan domain di subkumpulan lokasi Cloud Run yang tersedia. Alternatif yang direkomendasikan adalah memanfaatkan Load Balancer HTTP(S) Global untuk domain kustom Anda.
- Konektivitas VPC
- Layanan Cloud Run berada di luar VPC Anda. Untuk berkomunikasi dengan resource dalam VPC, Anda harus menggunakan Serverless VPC Access Connector.
- Kontrol traffic masuk
- Jika layanan inferensi Knative Anda dikonfigurasikan untuk jaringan internal pribadi dan menggunakan load balancer internal (ILB), Anda dapat mengonfigurasi layanan Cloud Run ke
Ingress = Internal
. Mengonfigurasi layanan Anda keinternal
akan membatasi akses ke dalam VPC Anda atau layanan Cloud Run lainnya. Pelajari komunikasi antarlayanan lebih lanjut.
Memigrasikan layanan
Untuk memigrasikan layanan, Anda harus mengekspor layanan inferensi Knative, mengedit file YAML yang diekspor, lalu men-deploy layanan yang telah dikonfigurasi ulang ke Cloud Run.
Ekspor layanan penyajian Knative Anda ke file YAML lokal dengan menjalankan perintah berikut:
gcloud run services describe SERVICE --format export --namespace NAMESPACE --cluster CLUSTER --platform gke > FILENAME.yaml
Ganti:
SERVICE
dengan nama layanan penayangan Knative Anda.NAMESPACE
dengan namespace tempat layanan Anda dijalankan.CLUSTER
dengan nama cluster tempat layanan Anda berjalan.FILENAME
dengan nama file unik pilihan Anda.
Ubah file
FILENAME.yaml
yang diekspor untuk Cloud Run:- Anda harus menelusuri dan mengganti namespace Kubernetes dengan ID project Google Cloud Anda. Misalnya, Anda harus mengganti
namespace:
default
dengannamespace:
my-unique-id
. - Anda harus memperbarui semua konfigurasi untuk fitur yang tidak didukung.
Anda harus menghapus salah satu atribut berikut beserta nilainya:
metadata.annotations.kubectl.kubernetes.io/last-applied-configuration
metadata.managedFields
spec.template.spec.containers.readinessProbes
spec.template.spec.enableServiceLinks
Misalnya, Anda mungkin perlu menghapus konfigurasi berikut dari dalam atribut
spec:
>template:
>spec:
>containers:
:... readinessProbe: successThreshold: 1 tcpSocket: {} ...
- Anda harus menelusuri dan mengganti namespace Kubernetes dengan ID project Google Cloud Anda. Misalnya, Anda harus mengganti
Deploy file
.yaml
yang dimodifikasi ke Cloud Run menggunakan flag--platform managed
. Pelajari lebih lanjut cara men-deploy.Perhatikan bahwa Anda dapat menggunakan project Google Cloud yang sama untuk Cloud Run.
gcloud run services replace FILENAME.yaml --platform managed --region REGION
Ganti:
FILENAME
dengan nama file konfigurasi yang diekspor yang Anda buat.REGION
dengan lokasi Cloud Run yang didukung. Contoh:us-central1
Konfigurasi akses ke layanan Cloud Run Anda:
Secara default, layanan Cloud Run tidak dapat diakses secara eksternal. Untuk mengekspos layanan Anda ke internet secara publik dan mengizinkan permintaan yang tidak diautentikasi, Anda harus mengizinkan akses publik (tidak diautentikasi).
Guna mengonfigurasi layanan ini untuk akses khusus internal pribadi seperti antara layanan Cloud Run Anda, lihat bagian Mengautentikasi service-to-service.
Di konsol Google Cloud, di halaman layanan, Anda dapat mengklik link URL yang ditampilkan untuk membuka endpoint yang unik dan stabil dari layanan yang di-deploy.
Memigrasikan traffic ke layanan
Setelah menguji layanan yang baru di-deploy dan siap memigrasikan semua traffic produksi, Anda dapat mengonfigurasi domain kustom dan memperbarui data DNS dengan registrar. Ikuti petunjuk di bagian Memetakan domain kustom.