Tentang container sistem Linux
Migrate to Containers CLI memungkinkan Anda memigrasikan aplikasi berbasis Linux ke lingkungan container. Container ini menggunakan container sistem Linux bawaan yang berfungsi sebagai bootloader untuk layanan yang diperlukan oleh aplikasi yang dimodernisasi. Dengan menggunakan Migrate to Containers untuk aplikasi Linux, Anda dapat memodernisasi berbagai aplikasi stateless untuk dijalankan di Google Kubernetes Engine (GKE), Cloud Run, dan cluster GKE.
Untuk informasi selengkapnya, lihat Arsitektur Migrate to Containers CLI.
Dokumen ini memberikan detail tentang container sistem Linux Migrate to Containers 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, alat ini akan menghasilkan artefak yang mencakup Dockerfile, manifes Kubernetes, dan konfigurasi Skaffold.
Fungsi utama penampung sistem Linux adalah untuk memulai layanan yang awalnya dijalankan di instance virtual machine (VM) sumber, termasuk layanan aplikasi dan sistem operasi yang relevan.
Dockerfile digunakan untuk mem-build image untuk VM yang dimigrasikan. Dockerfile penampung sistem Linux biasanya terlihat mirip dengan berikut:
# 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 rencana migrasi dan folder apa pun yang disediakan dalam rencana migrasi data yang difilter.
Pernyataan berikut mengimpor runtime Migrate to Containers dari repositori Docker ke dalam 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 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 Migrate to Containers utama. Ini adalah sistem inisialisasi yang dibuat untuk penampung. Metode ini
melakukan hal berikut:
- Membaca file
/.m4a/services-config.yaml
, dan menjalankan biner yang ditentukan secara berurutan sesuai dengan metode run yang ditentukan seperti daemonize, not daemonize, wait for finish. - Mengumpulkan log yang ditentukan dalam
file
/code/config/logs/logsArtifact.yaml
dan mencetaknya kestdout
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 dari artefak yang dimigrasikan. Anda mungkin memiliki pipeline yang berbeda untuk aplikasi yang berbeda. Anda dapat mempertahankan pipeline integrasi berkelanjutan dan deployment yang ada yang menghasilkan aplikasi berbasis VM asli, dan menambahkan langkah-langkah yang relevan yang mengubah file yang dapat dieksekusi yang dihasilkan menjadi penampung sistem Linux.
Diagram berikut mengilustrasikan contoh pipeline menggunakan Migrate to Containers:
Diagram ini menunjukkan proses perubahan aplikasi yang ada.
Perubahan pada kode sumber atau jalur OS baru akan didorong ke repositori Git yang ada. Sumber dikompilasi berdasarkan penyiapan yang ada dan image baru di-build. Image baru menyertakan lapisan runtime Migrate to Containers.
Di lingkungan pengujian, developer menjalankan pengujian awal untuk mengonfirmasi apakah image baru berfungsi seperti yang diharapkan. Setelah fase pengujian, image penampung sistem baru akan dibuat dan dikirim ke lingkungan pengembangan atau pengujian, yang nantinya akan diluncurkan ke produksi.