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:

  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 rencana migrasi sesuai kebutuhan.

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

      Misalnya, untuk migrasi bernama "my-migration":

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

    3. Verifikasi pengelola layanan Linux yang ditingkatkan. 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 flag-nya adalah false, 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
    4. Lakukan penyesuaian lain yang diperlukan untuk migrasi Anda seperti yang dijelaskan dalam Menyesuaikan rencana migrasi.

    5. Setelah selesai mengedit, simpan file yang diedit.

    6. Upload paket 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 penampung untuk menerapkan perubahan.

    Lihat Menggunakan services-config.yaml untuk mengetahui informasi selengkapnya tentang cara mengedit file services.yaml.

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

  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 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:

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

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