Memigrasikan VM Linux menggunakan CLI Migrate to Containers
Dalam panduan memulai ini, Anda akan membuat instance virtual machine (VM) Compute Engine, lalu menggunakan CLI Migrate to Containers untuk memigrasikan VM ke Google Kubernetes Engine (GKE).
Sebelum memulai
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda. Pelajari cara memeriksa apakah penagihan diaktifkan di project.
Aktifkan Compute Engine API.
Aktifkan GKE API.
Membuat VM Compute Engine dengan server web untuk digunakan sebagai VM sumber
Bagian ini menjelaskan cara membuat VM Compute Engine yang menayangkan halaman web Halo Dunia! yang dapat Anda gunakan untuk pengujian setelah migrasi selesai.
Di Konsol Google Cloud, klik Activate Cloud Shell.
Buat VM:
gcloud compute instances create quickstart-source-vm \ --zone=us-central1-a --machine-type=e2-medium \ --subnet=default --scopes="cloud-platform" \ --tags=http-server,https-server --image=ubuntu-2204-jammy-v20240208 \ --image-project=ubuntu-os-cloud --boot-disk-size=10GB --boot-disk-type=pd-standard \ --boot-disk-device-name=quickstart-source-vm
Tunggu beberapa menit hingga pembuatan VM selesai.
Buat aturan firewall yang mengizinkan permintaan ke instance melalui HTTP:
gcloud compute firewall-rules create default-allow-http \ --direction=INGRESS --priority=1000 --network=default --action=ALLOW \ --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http-server
Buka halaman VM instances.
Untuk terhubung ke VM
quickstart-source-vm
, cari baris untuk VM, lalu klik SSH.Koneksi dibuat di tab baru.
Pada tab perintah
quickstart-source-vm
, instal paketapache2
:sudo apt-get update && sudo apt-get install apache2 -y
Setelah menginstal Apache, sistem operasi akan otomatis memulai server Apache.
Pada tab yang sama, timpa halaman web default server web Apache dengan halaman baru:
echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
Kembali ke halaman VM instances, dan salin alamat External IP yang ditampilkan untuk
quickstart-source-vm
.Tempelkan alamat IP VM di kolom URL browser Anda. Awali dengan
http://
.Halaman Hello World! akan muncul.
Membuat VM Compute Engine untuk digunakan sebagai mesin lokal
Di bagian ini, Anda akan membuat VM Linux yang dapat digunakan sebagai mesin lokal untuk melakukan berbagai operasi Migrate to Containers guna memigrasikan VM sumber.
Di Konsol Google Cloud, klik Activate Cloud Shell.
Buat VM:
gcloud compute instances create quickstart-local-vm \ --zone=us-central1-a --machine-type=e2-medium \ --subnet=default --scopes="cloud-platform" \ --tags=http-server,https-server --image=ubuntu-2204-jammy-v20240208 \ --image-project=ubuntu-os-cloud --boot-disk-size=50GB --boot-disk-type=pd-standard \ --boot-disk-device-name=quickstart-local-vm
Tunggu beberapa menit hingga pembuatan VM selesai.
Membuat cluster GKE
Di bagian ini, Anda akan membuat cluster GKE di Google Cloud, tempat Anda akan men-deploy workload dalam container nanti di panduan memulai ini.
Di Cloud Shell, buat cluster Kubernetes baru:
gcloud container clusters create quickstart-cluster \ --zone=us-central1-a --machine-type=e2-medium \ --image-type=ubuntu_containerd --num-nodes=1 \ --logging=SYSTEM,WORKLOAD,API_SERVER,SCHEDULER,CONTROLLER_MANAGER
Tunggu beberapa menit hingga pembuatan cluster selesai.
Menyiapkan VM lokal untuk melakukan migrasi
Buka halaman VM instances.
Untuk terhubung ke VM
quickstart-local-vm
, cari baris untuk VM, lalu klik SSH.Koneksi dibuat di tab baru.
Pada tab perintah
quickstart-local-vm
, instal Google Cloud CLI:# Import the Google Cloud public key. curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg # Add the gcloud CLI distribution URI as a package source echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list # Update and install gcloud sudo apt-get update && sudo apt-get install google-cloud-cli # Get started gcloud init
Untuk menyelesaikan penyiapan gcloud CLI, ikuti petunjuk yang muncul di tab perintah
quickstart-local-vm
:- Untuk memilih akun yang akan digunakan untuk melakukan berbagai operasi, masukkan
1
. - Untuk memilih project tempat Anda membuat VM, masukkan
1
. - Untuk melewati konfigurasi region dan zona default, masukkan
n
.
- Untuk memilih akun yang akan digunakan untuk melakukan berbagai operasi, masukkan
Instal Docker dan izinkan pengguna non-root menjalankan container:
# Download the convenience script curl -fsSL https://get.docker.com -o install-docker.sh # Install Docker sudo sh install-docker.sh # Allow the non-root user to access Docker sudo usermod -aG docker $USER # Activate the group changes newgrp docker
Instal Skaffold:
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64 && \ sudo install skaffold /usr/local/bin/
Download CLI Migrate to Containers:
curl -O "https://m2c-cli-release.storage.googleapis.com/$(curl -s https://m2c-cli-release.storage.googleapis.com/latest)/linux/amd64/m2c" chmod +x ./m2c
Memigrasikan VM sumber
Migrasi biasanya memerlukan tiga langkah: menyalin sistem file VM sumber, menganalisis sistem file untuk membuat rencana migrasi, dan membuat artefak migrasi.
Bagian berikut menjelaskan cara menggunakan CLI Migrate to Containers untuk memigrasikan VM sumber menggunakan VM Linux lokal Anda.
Salin sistem file VM sumber
Saat Anda menyalin sistem file VM sumber, Migrate to Containers CLI menggunakan filter default untuk mengurangi ukuran sistem file yang disalin. Namun, agar
server Apache tersedia untuk dimulai, server memerlukan direktori /var/log
,
yang dihapus oleh filter default.
Bagian ini menjelaskan cara mengedit filter default untuk memastikan bahwa
/var/log/*
disalin dengan sistem file VM sumber.
Pada tab perintah
quickstart-local-vm
, dapatkan daftar filter default Migrate to Containers dalam file bernamafilters.txt
:./m2c copy default-filters > filters.txt
Untuk mengedit filter default, lakukan hal berikut:
Buka file
filters.txt
di editor teks:vi filters.txt
Untuk membuat perubahan pada file, tekan
i
.Hapus pernyataan berikut:
- /var/log/*
Untuk menyimpan file dan keluar dari editor teks, tekan
Esc
, lalu masukkan:wq
.
Salin sistem file komputer sumber:
./m2c copy gcloud \ --project PROJECT_ID --zone us-central1-a \ --vm-name quickstart-source-vm --output quickstart-vm-filesystem \ --filters filters.txt
Ganti PROJECT_ID dengan ID project.
Salinan sistem file mesin sumber tersedia di direktori
quickstart-vm-filesystem
.
Membuat rencana migrasi
Pada tab perintah
quickstart-local-vm
, buat rencana migrasi:./m2c analyze \ --source quickstart-vm-filesystem --plugin linux-vm-container \ --output analysis-output
Setelah analisis selesai, direktori baru bernama
analysis-output
akan dibuat yang berisi rencana migrasi,config.yaml
.
Membuat artefak migrasi
Pada tab perintah
quickstart-local-vm
, buat artefak migrasi:./m2c generate --input analysis-output --output migration-artifacts
Artefak migrasi yang dihasilkan akan ditambahkan ke direktori
migration-artifacts
.
Men-deploy workload yang dimigrasikan
Di bagian ini, Anda akan men-deploy workload yang dimigrasikan dari VM lokal quickstart-local-vm
ke cluster GKE yang berjalan di Google Cloud.
Pada tab perintah
quickstart-local-vm
, instal plugingke-gcloud-auth-plugin
:sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin
Instal
kubectl
:sudo apt-get install kubectl
Hubungkan ke cluster
quickstart-cluster
:gcloud container clusters get-credentials quickstart-cluster --zone us-central1-a --project PROJECT_ID
Buka folder
migration-artifacts
:cd migration-artifacts
Untuk mengekspos beban kerja ke internet, tambahkan layanan
LoadBalancer
baru dalam filedeployment_spec.yaml
. Untuk mengedit filedeployment_spec.yaml
, lakukan langkah berikut:Buka file
deployment_spec.yaml
di editor teks:vi deployment_spec.yaml
Untuk membuat perubahan pada file, tekan
i
.Temukan objek
Service
dengan namalinux-system
. Tampilannya mirip dengan berikut ini:--- apiVersion: v1 kind: Service metadata: creationTimestamp: null labels: anthos-migrate.cloud.google.com/type: linux-container migrate-for-anthos-optimization: "true" migrate-for-anthos-version: m2c-cli-1.2.2 name: linux-system spec: clusterIP: None selector: app: linux-system type: ClusterIP ---
Tambahkan objek
Service
lain bernamahello-service
tepat setelahlinux-system
:--- apiVersion: v1 kind: Service metadata: creationTimestamp: null labels: anthos-migrate.cloud.google.com/type: linux-container migrate-for-anthos-optimization: "true" migrate-for-anthos-version: m2c-cli-1.2.2 name: linux-system spec: clusterIP: None selector: app: linux-system type: ClusterIP --- # Add the hello-service object apiVersion: v1 kind: Service metadata: name: hello-service spec: selector: app: linux-system ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer ---
Untuk menyimpan file dan keluar dari editor teks, tekan
Esc
, lalu masukkan:wq
.
Deploy VM yang dimigrasikan:
skaffold run -d eu.gcr.io/PROJECT_ID
Dapatkan alamat IP eksternal VM yang dimigrasikan:
kubectl get service hello-service
Jika server web sudah siap, Anda akan melihat alamat IP eksternal untuk
hello-service
yang ditambahkan.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-service LoadBalancer 10.23.241.124 EXTERNAL_IP 80:32611/TCP 5m4s
Untuk memeriksa apakah migrasi berhasil, buka tab browser baru, lalu buka halaman web di alamat IP eksternal.
http://EXTERNAL_IP
Pastikan Anda menggunakan
HTTP
, bukanHTTPS
.Jika Anda melihat teks Hello World! ditampilkan di layar, berarti migrasi VM Anda berhasil.
Jika Anda tidak dapat mengakses beban kerja yang dimigrasikan, lihat cara memecahkan masalah umum.
Pembersihan
Agar akun Google Cloud Anda tidak dikenakan biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
Menghapus cluster GKE
- Di konsol Google Cloud, buka halaman GKE.
- Pilih
quickstart-cluster
, lalu klik Delete. - Saat diminta untuk mengonfirmasi, klik Hapus lagi.
Menghapus VM
- Di konsol Google Cloud, buka halaman Instance VM.
- Klik nama
quickstart-source-vm
. - Di bagian atas halaman detail instance, klik Hapus.
- Klik nama
quickstart-local-vm
. - Di bagian atas halaman detail instance, klik Hapus.
Langkah selanjutnya
- Pelajari cara mengelompokkan penemuan tamu dan pengumpulan data.
- Untuk mempelajari cara memigrasikan aplikasi yang lebih kompleks, lihat Tutorial memigrasikan aplikasi framework Spring yang tersedia di repositori GitHub Migrate to Containers.