Memigrasikan layanan penayangan Knative ke Cloud Run

Gunakan panduan ini untuk memigrasikan beban kerja Anda ke Cloud Run. Secara umum, memigrasikan workload mengharuskan Anda memindahkan semua fitur berbasis Kubernetes dan kemudian 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.

  • Admin API v1 Cloud Run dirancang untuk memaksimalkan portabilitas dengan Knative serving.

  • Pengalaman pengguna serupa di seluruh penayangan Cloud Run dan Knative:

    • Grup perintah gcloud run digunakan di kedua produk.
    • Tata letak dan perilaku antarmuka pengguna yang serupa di Google Cloud konsol.

Sebelum memulai

Fitur Google Kubernetes Engine berikut tidak didukung di Cloud Run, termasuk:

Pertimbangan migrasi

Anda harus meninjau dan memahami perbedaan berikut di seluruh produk untuk memastikan Anda dapat memindahkan semua dependensi dan persyaratan.

Rahasia

Di Cloud Run, Anda dapat memilih untuk memasang secret sebagai variabel lingkungan atau volume, tetapi secret dengan informasi sensitif harus disimpan di Secret Manager.

Perbedaan penting antara secret di Secret Manager dan secret Kubernetes:

Fitur Secret Manager secrets Secret Kubernetes
Karakter yang diizinkan dalam nama [a-zA-Z0-9_-]{1,255} [a-z0-9-.]{1,253}
Pembuatan Versi Secret diberi versi Tidak ada dukungan
Payload Rahasia Single []byte Peta: <string, string>

Pelajari cara menggunakan Secret Manager untuk membuat secret berversi untuk kunci rahasia layanan penayangan Knative Anda.

Jaringan

Gunakan informasi berikut untuk membantu Anda memindahkan konfigurasi jaringan yang ada ke Cloud Run.

Endpoint Layanan
Endpoint Kubernetes layanan penayangan Knative Anda tidak didukung di Cloud Run. Pelajari lebih lanjut endpoint unik di Cloud Run.
Pemetaan Domain
Cloud Run DomainMapping API kompatibel dengan Knative serving. Namun, Cloud Run menawarkan pemetaan domain di sebagian kecil 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 Konektor Akses VPC Serverless.
Kontrol traffic masuk
Jika layanan penayangan Knative Anda dikonfigurasi untuk jaringan internal pribadi dan menggunakan load balancer internal (ILB), Anda dapat mengonfigurasi layanan Cloud Run untuk Ingress = Internal. Mengonfigurasi layanan Anda ke internal membatasi akses ke dalam VPC Anda atau layanan Cloud Run lainnya. Pelajari komunikasi antar-layanan lebih lanjut.

Memigrasikan layanan

Untuk memigrasikan layanan, Anda harus mengekspor layanan penayangan Knative, mengedit file YAML yang diekspor, lalu men-deploy ulang layanan yang dikonfigurasi ulang ke Cloud Run.

  1. Ekspor layanan penayangan 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 Knative Anda.
    • NAMESPACE dengan namespace tempat layanan Anda berjalan.
    • CLUSTER dengan nama cluster tempat layanan Anda berjalan.
    • FILENAME dengan nama file unik pilihan Anda.
  2. Ubah file FILENAME.yaml yang diekspor untuk Cloud Run:

    • Anda harus menelusuri dan mengganti namespace Kubernetes dengan ID projectGoogle Cloud . Misalnya, Anda harus mengganti namespace:default dengan namespace:my-unique-id.
    • Anda harus memperbarui semua konfigurasi untuk fitur yang tidak didukung.
    • Anda harus menghapus 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 bawah atribut spec: > template: > spec: > containers::

      ...
       readinessProbe:
         successThreshold: 1
         tcpSocket: {}
      ...
      
  3. Deploy file .yaml yang telah diubah ke Cloud Run menggunakan flag --platform managed. Pelajari lebih lanjut cara men-deploy.

    Perhatikan bahwa Anda dapat menggunakan project yang sama Google Cloud untuk Cloud Run.

    gcloud run services replace FILENAME.yaml --platform managed --region REGION
    

    Ganti:

  4. Mengonfigurasi akses ke layanan Cloud Run Anda:

  5. Di konsol Google Cloud , dalam halaman layanan, Anda dapat mengklik link URL yang ditampilkan untuk membuka endpoint yang unik dan stabil dari layanan yang di-deploy.

    Buka Cloud Run

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 data DNS dengan registrar Anda. Ikuti petunjuk di Memetakan domain kustom.