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