Daftar layanan kustom yang tidak diizinkan
Secara default, Migrate to Containers menonaktifkan layanan yang tidak diperlukan pada VM saat Anda memigrasikannya ke container. Layanan ini terkadang dapat menyebabkan masalah dengan container yang dimigrasikan, atau tidak diperlukan dalam konteks container.
Anda juga dapat menentukan daftar layanan khusus yang akan dinonaktifkan dalam penampung yang dimigrasikan menggunakan daftar yang tidak diizinkan kustom. Dengan daftar yang tidak diizinkan, Anda menentukan satu atau beberapa layanan yang akan dinonaktifkan dalam penampung yang dimigrasikan.
Menentukan daftar yang tidak diizinkan
Tentukan daftar yang tidak diizinkan yang disesuaikan di 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 apa pun untuk nama grup.
- Nama layanan menentukan layanan yang akan dinonaktifkan di 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 yang tidak diizinkan kustom ke penampung dengan:
Membuat
configmap
Kubernetes yang berisi daftar yang tidak diizinkan dan menambahkannya ke spesifikasi deployment container.Metode ini memungkinkan Anda menambahkan daftar yang tidak diizinkan tanpa harus membuat ulang penampung. Namun, Anda harus membuat ulang
configmap
di setiap cluster yang digunakan untuk menghosting container.Edit Dockerfile untuk container dan build ulang image container.
Metode ini mengharuskan Anda membuat ulang image container untuk menambahkan daftar yang tidak diizinkan. Karena daftar yang tidak diizinkan kini disertakan dalam container, Anda tidak perlu melakukan konfigurasi tambahan pada cluster sebelum deployment.
Menggunakan configmap
Untuk membuat daftar yang tidak diizinkan menggunakan configmap
:
Migrasikan VM sumber ke penampung.
Buat file .yaml 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 yang tidak diizinkan: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
Tampilkan 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 yang tidak diizinkan. Nama variabel lingkungan harusHC_CUSTOM_SERVICE_BLOCKLIST
:containers: - image: container-image-location env: - name: HC_CUSTOM_SERVICE_BLOCKLIST value: "/etc/bl/my-blocklist.yaml"
Jalur yang ditentukan oleh value adalah penyambungan mountPath dari configmap dan nama file .yaml yang tidak diizinkan,
my-blocklist.yaml
.Simpan file.
Deploy container:
kubectl apply -f deployment_spec.yaml
Setelah container di-deploy, kemudian Anda dapat memeriksa container tersebut untuk memastikan 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 yang tidak diizinkan kustom dengan mengedit Dockerfile yang dibuat oleh migrasi.
Migrasikan VM sumber ke penampung.
Buka Dockerfile di editor.
Tambahkan perintah
COPY
berikut untuk menambahkan file .yaml yang tidak diizinkan ke sistem file container: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 yang tidak diizinkan berdasarkan tujuan file yang ditentukan oleh perintahCOPY
. Nama variabel lingkungan harusHC_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 memperbarui image container bergantung pada lingkungan build Anda. Anda dapat menggunakan:
gcloud
untuk mem-build image dan menguploadnya ke Container Registry seperti yang dijelaskan dalam Panduan Memulai: Build.docker build
seperti yang dijelaskan pada Membuat dan menjalankan image Anda .
Setelah Anda membuat gambar baru, buka file
deployment_spec.yaml
di editor untuk memperbarui lokasi gambar:spec: containers: - image: new-image-location
Misalnya, new-image-location dapat menjadi
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 container di-deploy, kemudian Anda dapat memeriksa container tersebut untuk memastikan 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