Daftar layanan kustom yang tidak diizinkan
Secara default, Migrate to Containers menonaktifkan layanan yang tidak diperlukan di VM saat Anda memigrasikannya ke penampung. Layanan ini terkadang dapat menyebabkan masalah pada penampung yang dimigrasikan, atau tidak diperlukan dalam konteks penampung.
Anda juga dapat menentukan daftar layanan kustom Anda sendiri untuk dinonaktifkan di penampung yang dimigrasikan menggunakan daftar yang tidak diizinkan kustom. Dengan daftar blokir, Anda menentukan satu atau beberapa layanan yang akan dinonaktifkan di penampung yang dimigrasikan.
Menentukan daftar blokir
Tentukan daftar blokir yang disesuaikan dalam file .yaml, dalam bentuk:
service_list:
- name: <var>group-name-1</var>
services:
- <var>service-name</var>
- name: <var>group-name-2</var>
services:
- <var>service-name</var>
- <var>ervice-name</var>
Dengan keterangan:
- Grup adalah kumpulan layanan yang logis sehingga Anda dapat mengumpulkan layanan serupa dalam satu grup. Tentukan nilai string untuk nama grup.
- Nama layanan menentukan layanan yang akan dinonaktifkan dalam penampung yang dimigrasikan.
Misalnya, tentukan file my-blocklist.yaml
sebagai:
service_list:
- name: lvm-related
services:
- lvm2-lvmetad
- name: hardware-related
services:
- microcode
- microcode.ctl
Menerapkan daftar yang tidak diizinkan kustom
Terapkan daftar blokir kustom Anda ke penampung dengan:
Membuat
configmap
Kubernetes yang berisi daftar yang tidak diizinkan dan menambahkannya ke spesifikasi deployment penampung.Metode ini memungkinkan Anda menambahkan daftar blokir tanpa harus mem-build ulang penampung. Namun, Anda harus membuat ulang
configmap
di setiap cluster yang digunakan untuk menghosting penampung.Edit Dockerfile untuk penampung dan build ulang image penampung.
Metode ini mengharuskan Anda mem-build ulang image penampung untuk menambahkan daftar blokir. Karena daftar blokir kini disertakan dalam penampung, Anda tidak perlu melakukan konfigurasi tambahan apa pun pada cluster sebelum deployment.
Menggunakan configmap
Untuk membuat daftar blokir menggunakan configmap
:
Migrasikan VM sumber ke container.
Buat file .yaml daftar yang tidak diizinkan seperti yang ditunjukkan di atas yang mencantumkan layanan yang ingin Anda nonaktifkan. Dalam contoh ini, beri nama file
my-blocklist.yaml
.Buat
configmap
dari file .yaml daftar blokir:kubectl create configmap configmap-name --from-file=path-to-yaml
Dalam contoh ini, configmap disebut
blocklistcm
:kubectl create configmap blocklistcm --from-file=./my-blocklist.yaml
Lihat configmap:
kubectl describe configmaps
Edit
deployment_spec.yaml
yang dibuat saat Anda memigrasikan penampung:vi deployment_spec.yaml
Dalam spesifikasi deployment, tambahkan hal berikut:
Tambahkan volume baru untuk
configmap
di bagianvolumes
:volumes: - configMap: name: blocklistcm # Name of the config map you created above. name: blocklistvol # Name of the configmap volume.
Tambahkan pemasangan volume untuk configmap:
spec: containers: volumeMounts: - mountPath: /etc/bl # Mount path for the configmap volume. name: blocklistvol # Name of the configmap volume.
Tambahkan variabel lingkungan baru bernama
HC_CUSTOM_SERVICE_BLOCKLIST
yang menentukan jalur ke file .yaml daftar blokir. Nama variabel lingkungan harus berupaHC_CUSTOM_SERVICE_BLOCKLIST
:containers: - image: container-image-location env: - name: HC_CUSTOM_SERVICE_BLOCKLIST value: "/etc/bl/my-blocklist.yaml"
Jalur yang ditentukan oleh nilai adalah penyambungan mountPath dari configmap dan nama file .yaml daftar blokir,
my-blocklist.yaml
.Simpan file.
Deploy container:
kubectl apply -f deployment_spec.yaml
Setelah penampung di-deploy, Anda dapat memeriksa penampung untuk memastikan bahwa layanan tidak berjalan. Contoh:
# Get pod name. $ kubectl get pod # Connect to pod. $ kubectl exec -it POD_NAME -- /bin/bash # View running services. This step is OS dependent. For example: $ service --status-all```
Mengedit Dockerfile
Bagian ini menjelaskan cara membuat daftar blokir kustom dengan mengedit Dockerfile yang dibuat oleh migrasi.
Memigrasikan VM sumber ke container.
Buka Dockerfile di editor.
Tambahkan perintah
COPY
berikut untuk menambahkan file .yaml daftar blokir ke sistem file penampung:COPY src dest
Contoh:
COPY my-blocklist.yaml /etc/mybl/my-blocklist.yaml
Jalur tujuan dapat berupa jalur apa pun dalam penampung.
Tambahkan variabel lingkungan baru bernama
HC_CUSTOM_SERVICE_BLOCKLIST
yang menentukan jalur ke file .yaml daftar blokir berdasarkan tujuan file yang ditentukan oleh perintahCOPY
. Nama variabel lingkungan harus berupaHC_CUSTOM_SERVICE_BLOCKLIST
:ENV HC_CUSTOM_SERVICE_BLOCKLIST /file-path
Contoh:
ENV HC_CUSTOM_SERVICE_BLOCKLIST /etc/mybl/my-blocklist.yaml
Perbarui image container.
Cara Anda mengupdate image container bergantung pada lingkungan build Anda. Anda dapat menggunakan:
gcloud
untuk mem-build image dan menguploadnya ke Container Registry seperti yang dijelaskan di Panduan Mulai Cepat: Build.docker build
seperti yang dijelaskan di Mem-build dan menjalankan image .
Setelah mem-build image baru, buka file
deployment_spec.yaml
di editor untuk memperbarui lokasi image:spec: containers: - image: new-image-location
Misalnya, new-image-location dapat berupa
gcr.io/my-project/my-new-image:v1.0
jika Anda menggunakangcloud
untuk mem-build image dan menguploadnya ke Container Registry.Deploy container:
kubectl apply -f deployment_spec.yaml
Setelah penampung di-deploy, Anda dapat memeriksa penampung untuk memastikan bahwa layanan tidak berjalan. Contoh:
# Get pod name. $ kubectl get pod # Connect to pod. $ kubectl exec -it POD_NAME -- /bin/bash # View running services. This step is OS dependent. For example: $ service --status-all