Men-deploy container ke Cloud Run
Jika Anda menggunakan pengelola layanan Linux yang ditingkatkan dan ditawarkan secara default untuk memigrasikan workload container, Anda dapat men-deploy container di Cloud Run tanpa harus membuat perubahan tambahan pada container.
Untuk men-deploy container Anda di Cloud Run:
Tambahkan sumber migrasi dan buat migrasi seperti yang Anda lakukan saat ini dengan runtime yang ada.
Sesuaikan paket migrasi Anda seperlunya.
Download paket migrasi. Rencana migrasi direpresentasikan oleh AppXGenerateArtifactsFlow.
Misalnya, untuk migrasi bernama "my-migration":
migctl migration get my-migration
Buka paket migrasi yang telah didownload,
my-migration.yaml
, di editor teks.Verifikasi pengelola layanan Linux yang disempurnakan. Flag
v2kServiceManager
ditetapkan ketrue
secara default. Namun, jika Migrate to Containers mendeteksi layanan sistem yang tidak didukung oleh pengelola layanan, Anda akan diberi tahu dan tandav2kServiceManager
akan ditetapkan kefalse
. Jika tanda ini adalahfalse
, migrasi akan menggunakan runtime lama yang mendukung layanan Anda.Notifikasi berikut diberikan bersama layanan yang tidak didukung:
Service is not supported by v2k service manager, therefore legacy runtime will be used instead of v2k service manager, and migrated workload would not fit running on Autopilot clusters of Cloudrun.
Jika layanan yang tidak didukung ditemukan, Anda juga dapat memilih untuk menyetel tanda secara manual ke
true
. Dalam hal ini, Anda dapat memilih untuk mempertahankan layanan yang tidak didukung pada image yang dihasilkan di mana layanan tersebut tidak dapat dijalankan, atau Anda dapat mengecualikan layanan dengan menghapusnya dari paket migrasi.Untuk mengaktifkan pengelola layanan baru, reset tanda ke
true
:v2kServiceManager: true
Lakukan penyesuaian lain yang diperlukan untuk migrasi seperti yang dijelaskan dalam Menyesuaikan paket migrasi.
Setelah selesai diedit, simpan file yang telah diedit.
Upload rencana migrasi yang telah diedit:
migctl migration update my-migration --main-config my-migration.yaml
Buat dan tinjau artefak migrasi seperti yang Anda lakukan saat ini dengan runtime yang ada.
Edit file
services-config.yaml
baru untuk mengonfigurasi properti inisialisasi penampung. Simpan file dan build ulang image container Anda untuk menerapkan perubahan.Lihat Menggunakan services-config.yaml untuk mengetahui informasi selengkapnya tentang cara mengedit file
services.yaml
Anda.Setelah membuat artefak migrasi, buka file
deployment_spec.yaml
di editor untuk menentukan lokasi image container. Misalnya, Anda akan melihat sesuatu yang mirip dengan berikut ini:spec: containers: - image: gcr.io/PROJECT_NAME/IMAGE_NAME:LABEL
Tempat
gcr.io/PROJECT_NAME/IMAGE_NAME:LABEL
menentukan lokasi image container.Gunakan perintah berikut untuk men-deploy container di Cloud Run:
gcloud run deploy my-runtime --image gcr.io/PROJECT_NAME/IMAGE_NAME:LABEL --region REGION --platform managed --set-env-vars=HC_V2K_SERVICE_MANAGER=true --port PORT
Properti
--set-env-vars
menetapkan variabel lingkunganHC_V2K_SERVICE_MANAGER
ketrue
untuk mengaktifkan pengelola layanan Linux yang disempurnakan.Properti
--port
menentukan port tempat permintaan dikirim ke container. Port defaultnya adalah 8080.
Contoh: Men-deploy container Panduan Memulai di Cloud Run
Gunakan panduan Panduan memulai saat ini untuk memigrasikan penampung yang berisi server web sederhana, lalu men-deploy-nya di Cloud Run. Satu-satunya perubahan yang harus Anda lakukan pada proses Panduan Memulai adalah:
Pada Langkah 3 Memigrasikan VM, tempat Anda meninjau rencana migrasi, tetapkan
v2kServiceManager
ketrue
dalam rencana migrasi, lalu simpan rencana tersebut:v2kServiceManager: true
Setelah migrasi selesai, buka file
deployment_spec.yaml
di editor untuk menentukan lokasi penampung. Misalnya, Anda akan melihat sesuatu yang mirip dengan berikut ini:spec: containers: - image: gcr.io/PROJECT_NAME/quickstart-instance:LABEL
Di bagian Men-deploy beban kerja yang dimigrasikan, deploy image container ke Cloud Run menggunakan perintah:
gcloud run deploy my-runtime --image gcr.io/PROJECT_NAME/quickstart-instance:LABEL --region REGION --platform managed --set-env-vars=HC_V2K_SERVICE_MANAGER=true --port 80
Server web di penampung yang dimigrasikan memproses permintaan pada port 80, jadi pastikan untuk menentukan port tersebut saat men-deploy penampung.
Anda akan melihat respons berikut, yang menyertakan URL layanan Cloud Run:
Allow unauthenticated invocations to [my-runtime] (y/N)? y Deploying container to Cloud Run service [my-runtime] in project [PROJECT_NAME] region [REGION] Deploying new service... Done. ✓ Creating Revision… ✓ Routing traffic… Setting IAM Policy… Done. Service [my-runtime] revision [my-runtime-00001-sas] has been deployed and is serving 100 percent of traffic. Service URL: https://my-runtime-s5ahdq-uc.a.run.app
Dari Cloud Shell, buat permintaan ke container menggunakan URL layanannya, dengan meneruskan kredensial Anda:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" https://my-runtime-s5ahdq-uc.a.run.app
Halaman "Hello World!" akan muncul.
Langkah selanjutnya
- Pelajari cara menggunakan services-config.yaml.