Tentang container sistem Linux

Dengan Migrate to Containers CLI, Anda dapat memigrasikan aplikasi berbasis Linux ke lingkungan dalam container. Library ini menggunakan container sistem Linux bawaan yang berfungsi sebagai bootloader untuk layanan yang diperlukan oleh aplikasi modern. Dengan menggunakan Migrate to Containers untuk aplikasi Linux, Anda dapat memodernisasi berbagai aplikasi stateless untuk dijalankan di cluster Google Kubernetes Engine (GKE), Cloud Run, dan GKE.

Untuk informasi selengkapnya, lihat Bermigrasi ke arsitektur CLI Container.

Dokumen ini memberikan detail tentang container sistem Migrate to Containers Linux yang digunakan sebagai bagian dari solusi untuk menjalankan aplikasi yang dimigrasikan menggunakan Migrate to Containers.

Migrasi menggunakan penampung sistem Linux

Migrate to Containers menemukan file dan proses aplikasi sumber. Kemudian, artefak yang mencakup Dockerfile, manifes Kubernetes, dan konfigurasi Skaffold akan dihasilkan.

Fungsi utama penampung sistem Linux adalah untuk menginisiasi layanan yang awalnya dijalankan di instance mesin virtual (VM) sumber, termasuk sistem operasi dan layanan aplikasi yang relevan.

Dockerfile digunakan untuk mem-build image untuk VM yang Anda migrasikan. Dockerfile sistem Linux biasanya terlihat mirip dengan berikut ini:

# Please refer to the documentation:
# https://cloud.google.com/migrate/anthos/docs/dockerfile-reference

FROM us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/service-manager-runtime:1.0.0 as service-manager-runtime

FROM scratch

# Tar containing data captured from the source VM
ADD vmFiles.tar.gz /

COPY --from=service-manager-runtime / /

ADD blocklist.yaml /.m4a/blocklist.yaml

ADD logs.yaml /code/config/logs/logsArtifact.yaml

ADD services-config.yaml /.m4a/

ADD tempfiles.yaml  /.m4a/

# If you want to update parts of the image, add your commands here.
# For example:
# RUN apt-get update
# RUN apt-get install -y \
#       package1=version \
#       package2=version \
#       package3=version
# RUN yum update
# RUN wget http://github.com

ENTRYPOINT ["/ko-app/service-manager-runtime", "start", "-c", "/.m4a/"]

Saat Anda menjalankan migrasi, pernyataan Dockerfile berikut akan menyalin atau menambahkan data VM dari sumber asli ke image Docker:

  • Pernyataan berikut menambahkan file tar yang berisi data yang diambil dari VM sumber ke image Docker:

    ADD vmFiles.tar.gz /
    

    Tar ini dibuat oleh Migrate to Containers. File ini berisi sistem file root VM sumber dengan semua yang disediakan dalam filter dalam paket migrasi dan folder apa pun yang disediakan dalam paket migrasi data dikecualikan.

  • Pernyataan berikut mengimpor runtime Migrate to Containers dari repositori Docker ke image Docker:

    FROM us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/service-manager-runtime:1.0.0 as service-manager-runtime
    
  • Pernyataan berikut kemudian akan menyalin runtime Migrate to Containers ke dalam image Docker:

    COPY --from=service-manager-runtime / /
    

Klik untuk melihat detail tentang file runtime Migrate to Containers

/ko-app/service-manager-runtime adalah file runtime utama Migrate to Containers. Ini adalah sistem inisialisasi yang dibuat untuk container. Metode ini akan melakukan hal berikut:

  • Membaca file /.m4a/services-config.yaml, dan menjalankan biner yang ditentukan secara berurutan sesuai dengan metode run yang ditentukan, seperti merevolusi, tidak melakukan daemon, menunggu hingga selesai.
  • Mengumpulkan log yang ditentukan dalam file /code/config/logs/logsArtifact.yaml dan mencetaknya ke stdout penampung. Untuk cluster GKE dan GKE, tindakan ini juga memastikan bahwa log dikirim ke Cloud Logging.

Pemeliharaan workload yang dimigrasikan

Anda dapat membuat pipeline baru untuk aplikasi Anda dari artefak yang dimigrasikan. Anda mungkin memiliki pipeline yang berbeda untuk aplikasi yang berbeda. Anda dapat mempertahankan pipeline deployment dan continuous integration yang sudah ada, yang menghasilkan aplikasi berbasis VM asli, dan menambahkan langkah-langkah relevan yang mengubah file yang dapat dieksekusi tersebut menjadi container sistem Linux.

Diagram berikut mengilustrasikan contoh pipeline menggunakan Migrate to Containers:

Alur CI/CD otomatis untuk replatform aplikasi menggunakan Migrate to Containers

Diagram ini menunjukkan proses perubahan aplikasi yang sudah ada.

Perubahan pada kode sumber atau jalur OS baru dikirim ke repositori Git yang ada. Sumber dikompilasi berdasarkan penyiapan yang ada dan image baru akan dibuat. Image baru mencakup lapisan runtime Migrate to Containers.

Di lingkungan pengujian, developer menjalankan pengujian awal untuk mengonfirmasi apakah gambar baru berfungsi seperti yang diharapkan. Setelah fase pengujian, image container sistem baru akan dibuat dan dikirim ke lingkungan pengembangan atau pengujian, yang kemudian diluncurkan ke produksi.