Gunakan panduan ini untuk memigrasikan workload Anda ke Cloud Run. Secara umum, memigrasikan beban kerja, Anda harus melakukan porting melalui layanan berbasis Kubernetes fitur, lalu men-deploy ulang setiap layanan yang ada ke Cloud Run.
Manfaat utama bermigrasi ke Cloud Run:
Produk serverless yang terkelola sepenuhnya yang menerapkan Spesifikasi Knative Serving API dan mematuhi kontrak container.
v1 Admin API dari Cloud Run dirancang untuk memaksimalkan portabilitas dengan penyaluran Knative.
Pengalaman pengguna di Cloud Run dan layanan Knative serupa:
- Grup perintah
gcloud run
digunakan di kedua produk. - Tata letak dan perilaku 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, Keaktifan, dan Kesiapan pemeriksaan, dan Penemuan Layanan.
- Konfigurasi:
- ConfigMaps - Dengan Secret Manager, Anda dapat mengubah ConfigMaps menjadi rahasia.
- GPU NVIDIA
{i>Access control<i}/Kontrol akses:
Anda dapat menggunakan IAM di Cloud Run untuk mendapatkan kontrol yang sama atas akses ke sumber daya Anda. Pertimbangkan juga menggunakan Identitas layanan.
Pertimbangan migrasi
Anda harus meninjau dan memahami perbedaan berikut di seluruh produk untuk memastikan Anda dapat memindahkan semua dependensi dan persyaratan Anda.
Rahasia
Di Cloud Run, Anda dapat memilih untuk memasang secret sebagai variabel lingkungan atau volume, tetapi rahasia dengan informasi sensitif harus disimpan di Secret Manager.
Perbedaan penting antara rahasia di Secret Manager dan Rahasia Kubernetes:
Fitur | Secret Manager secrets | Rahasia Kubernetes |
---|---|---|
Karakter yang diizinkan pada nama | [a-zA-Z0-9_-]{1,255} |
[a-z0-9-.]{1,253} |
Pembuatan Versi | Rahasia diberi versi | Tidak ada dukungan |
Payload Rahasia | []byte tunggal |
Peta: <string, string> |
Pelajari cara menggunakan Secret Manager untuk membuat secret berversi untuk kunci rahasia layanan penyaluran Knative Anda.
Jaringan
Gunakan informasi berikut untuk membantu Anda melakukan transfer melalui jaringan yang ada konfigurasi file ke Cloud Run.
- Endpoint Layanan
- Endpoint Kubernetes layanan penyaluran Knative Anda tidak didukung di Cloud Run. Pelajari endpoint unik di Cloud Run lebih lanjut.
- Pemetaan Domain
- Cloud Run DomainMapping API kompatibel dengan penyaluran Knative. Namun, Cloud Run menawarkan pemetaan domain di subset resource yang tersedia, Lokasi Cloud Run. Alternatif yang direkomendasikan adalah dengan memanfaatkan Load Balancer HTTP(S) Global untuk domain kustom.
- Konektivitas VPC
- Layanan Cloud Run berada di luar VPC Anda. Untuk berkomunikasi dengan resource dalam VPC, Anda harus menggunakan Konektor Akses VPC Serverless.
- Kontrol masuk
- Jika layanan penayangan Knative Anda dikonfigurasi untuk server internal pribadi
jaringan Google Cloud dan menggunakan load balancer internal (ILB), Anda dapat mengonfigurasi
Layanan Cloud Run ke
Ingress = Internal
. Mengonfigurasi layanan Anda keinternal
akan membatasi akses dalam VPC Anda atau layanan Cloud Run lainnya. Pelajari komunikasi antarlayanan lebih lanjut.
Memigrasikan layanan
Untuk memigrasikan layanan, Anda harus mengekspor layanan penayangan Knative, mengedit file YAML yang diekspor, lalu men-deploy layanan yang telah dikonfigurasi ulang ke di 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 penyaluran Knative.NAMESPACE
dengan namespace tempat layanan berjalan.CLUSTER
dengan nama cluster tempat layanan Anda berjalan.FILENAME
dengan nama file unik pilihan.
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 dan 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 di bagian
spec:
>template:
>spec:
> Atributcontainers:
:... 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 telah dimodifikasi ke Cloud Run menggunakan tanda--platform managed
. Pelajari lebih lanjut cara melakukan deployment.Perlu diperhatikan 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 item yang diekspor file konfigurasi yang Anda buat.REGION
dengan didukung Lokasi Cloud Run. Contoh:us-central1
Konfigurasikan akses ke layanan Cloud Run Anda:
Secara default, layanan Cloud Run tidak dapat diakses secara eksternal. Kepada menunjukkan layanan Anda ke internet secara publik dan mengizinkan permintaan, Anda harus mengizinkan akses publik (tidak diautentikasi).
Untuk mengonfigurasi layanan ini bagi akses khusus internal pribadi seperti antara layanan Cloud Run Anda, lihat Mengautentikasi antarlayanan.
Di Konsol Google Cloud, dalam halaman layanan, Anda dapat mengklik link URL yang ditampilkan untuk membuka endpoint unik dan stabil dari link yang Anda deploy layanan.
Memigrasikan traffic ke layanan Anda
Setelah menguji layanan yang baru di-deploy dan siap memigrasikan semua traffic produksi, Anda dapat mengonfigurasi domain kustom dan memperbarui DNS Anda dengan registrar. Ikuti petunjuknya di Memetakan domain kustom.