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:

  1. Instal Migrate to Containers versi 1.15.0.

  2. Tambahkan sumber migrasi dan buat migrasi seperti yang Anda lakukan saat ini dengan runtime yang ada.

  3. Sesuaikan paket migrasi Anda seperlunya.

    1. Download paket migrasi. Rencana migrasi direpresentasikan oleh AppXGenerateArtifactsFlow.

      Misalnya, untuk migrasi bernama "my-migration":

      migctl migration get my-migration
    2. Buka paket migrasi yang telah didownload, my-migration.yaml, di editor teks.

    3. Verifikasi pengelola layanan Linux yang disempurnakan. Flag v2kServiceManager ditetapkan ke true secara default. Namun, jika Migrate to Containers mendeteksi layanan sistem yang tidak didukung oleh pengelola layanan, Anda akan diberi tahu dan tanda v2kServiceManager akan ditetapkan ke false. Jika tanda ini adalah false, 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
    4. Lakukan penyesuaian lain yang diperlukan untuk migrasi seperti yang dijelaskan dalam Menyesuaikan paket migrasi.

    5. Setelah selesai diedit, simpan file yang telah diedit.

    6. Upload rencana migrasi yang telah diedit:

      migctl migration update my-migration --main-config my-migration.yaml
  4. Buat dan tinjau artefak migrasi seperti yang Anda lakukan saat ini dengan runtime yang ada.

  5. 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.

  6. 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.

  7. 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 lingkungan HC_V2K_SERVICE_MANAGER ke true 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:

  1. Pada Langkah 3 Memigrasikan VM, tempat Anda meninjau rencana migrasi, tetapkan v2kServiceManager ke true dalam rencana migrasi, lalu simpan rencana tersebut:

    v2kServiceManager: true
  2. 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
  3. 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
  4. 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