Men-deploy container ke Cloud Run
Jika menggunakan pengelola layanan Linux yang ditingkatkan yang ditawarkan secara default untuk memigrasikan workload container, Anda dapat men-deploy container di Cloud Run tanpa harus melakukan perubahan tambahan pada container.
Untuk men-deploy container di Cloud Run:
Tambahkan sumber migrasi dan buat migrasi seperti yang Anda lakukan saat ini dengan runtime yang ada.
Sesuaikan rencana migrasi sesuai kebutuhan.
Download paket migrasi. Rencana migrasi diwakili oleh AppXGenerateArtifactsFlow.
Misalnya, untuk migrasi bernama "my-migration":
migctl migration get my-migration
Buka rencana migrasi yang didownload,
my-migration.yaml
, di editor teks.Verifikasi pengelola layanan Linux yang ditingkatkan. 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 flag-nya adalahfalse
, migrasi akan menggunakan runtime lama yang mendukung layanan Anda.Pemberitahuan 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 menetapkan tanda ke
true
secara manual. Dalam hal ini, Anda dapat memilih untuk mempertahankan layanan yang tidak didukung pada image yang dihasilkan yang mungkin tidak berjalan atau Anda dapat mengecualikan layanan dengan menghapusnya dari rencana migrasi.Untuk mengaktifkan pengelola layanan baru, reset flag ke
true
:v2kServiceManager: true
Lakukan penyesuaian lain yang diperlukan untuk migrasi Anda seperti yang dijelaskan dalam Menyesuaikan rencana migrasi.
Setelah selesai mengedit, simpan file yang diedit.
Upload paket 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 penampung untuk menerapkan perubahan.Lihat Menggunakan services-config.yaml untuk mengetahui informasi selengkapnya tentang cara mengedit file
services.yaml
.Setelah membuat artefak migrasi, buka file
deployment_spec.yaml
di editor untuk menentukan lokasi image penampung. Misalnya, Anda akan melihat sesuatu yang mirip dengan berikut ini:spec: containers: - image: gcr.io/PROJECT_NAME/IMAGE_NAME:LABEL
Dengan
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 ditingkatkan.Properti
--port
menentukan port tempat permintaan dikirim ke penampung. Port default-nya 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-deploynya di Cloud Run. Satu-satunya perubahan yang harus Anda lakukan pada proses Mulai Cepat adalah:
Pada Langkah 3 Memigrasikan VM, tempat Anda meninjau rencana migrasi, tetapkan
v2kServiceManager
ketrue
dalam rencana migrasi, lalu simpan rencana: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 di 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 penampung 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.