Cara Memodifikasi Konfigurasi Lanjutan Milvus
Yufen Zong, Insinyur Pengembangan Tes Zilliz, lulus dari Universitas Sains dan Teknologi Huazhong dengan gelar master di bidang teknologi komputer. Saat ini ia terlibat dalam jaminan kualitas basis data vektor Milvus, termasuk namun tidak terbatas pada pengujian integrasi antarmuka, pengujian SDK, pengujian Benchmark, dll. Yufen adalah seorang pemecah masalah yang antusias dalam pengujian dan pengembangan Milvus, dan penggemar berat teori chaos engineering dan praktik fault drill.
Latar Belakang
Ketika menggunakan database vektor Milvus, Anda perlu memodifikasi konfigurasi default untuk memenuhi kebutuhan skenario yang berbeda. Sebelumnya, seorang pengguna Milvus berbagi tentang Cara Memodifikasi Konfigurasi Milvus yang Diterapkan Menggunakan Docker Compose. Dan pada artikel ini, saya ingin berbagi dengan Anda tentang cara memodifikasi konfigurasi Milvus yang digunakan pada Kubernetes.
Memodifikasi konfigurasi Milvus di Kubernetes
Anda dapat memilih paket modifikasi yang berbeda sesuai dengan parameter konfigurasi yang ingin Anda ubah. Semua berkas konfigurasi Milvus disimpan di bawah milvus/configs. Saat menginstal Milvus di Kubernetes, repositori Milvus Helm Chart akan ditambahkan secara lokal. Dengan menjalankan helm show values milvus/milvus
, Anda dapat memeriksa parameter yang dapat dimodifikasi secara langsung dengan Chart. Untuk parameter yang dapat dimodifikasi dengan Chart, Anda dapat mengoper parameter menggunakan --values
atau --set
. Untuk informasi lebih lanjut, lihat Milvus Helm Chart dan Helm.
Jika parameter yang ingin Anda modifikasi tidak ada dalam daftar, Anda dapat mengikuti instruksi di bawah ini.
Pada langkah berikut, parameter rootcoord.dmlChannelNum
pada /milvus/configs/advanced/root_coord.yaml akan dimodifikasi untuk tujuan demonstrasi. Manajemen berkas konfigurasi Milvus pada Kubernetes diimplementasikan melalui objek sumber daya ConfigMap. Untuk mengubah parameter, Anda harus terlebih dahulu memperbarui objek ConfigMap dari rilis Chart yang sesuai, lalu memodifikasi berkas sumber daya penerapan dari pod yang sesuai.
Perhatikan bahwa metode ini hanya berlaku untuk modifikasi parameter pada aplikasi Milvus yang telah dit-deploy. Untuk memodifikasi parameter di /milvus/configs/advanced/*.yaml sebelum deployment, Anda perlu mengembangkan ulang Milvus Helm Chart.
Memodifikasi ConfigMap YAML
Seperti yang ditunjukkan di bawah ini, rilis Milvus Anda yang berjalan di Kubernetes berhubungan dengan objek ConfigMap dengan nama yang sama dengan nama rilis. Bagian data
pada objek ConfigMap hanya menyertakan konfigurasi di milvus.yaml. Untuk mengubah rootcoord.dmlChannelNum
di root_coord.yaml, Anda harus menambahkan parameter di root_coord.yaml ke bagian data
di ConfigMap YAML dan mengubah parameter tertentu.
kind: ConfigMap
apiVersion: v1
metadata:
name: milvus-chaos
...
data:
milvus.yaml: >
......
root_coord.yaml: |
rootcoord:
dmlChannelNum: 128
maxPartitionNum: 4096
minSegmentSizeToEnableIndex: 1024
timeout: 3600 # time out, 5 seconds
timeTickInterval: 200 # ms
Memodifikasi YAML Penyebaran
Data yang disimpan dalam ConfigMap dapat direferensikan dalam volume bertipe configMap dan kemudian digunakan oleh aplikasi terkontainerisasi yang berjalan dalam pod. Untuk mengarahkan pod ke file konfigurasi baru, Anda harus memodifikasi templat pod yang perlu memuat konfigurasi di root_coord.yaml. Secara khusus, Anda perlu menambahkan deklarasi mount di bawah bagian spec.template.spec.containers.volumeMounts
dalam deployment YAML.
Mengambil deployment YAML pod rootcoord sebagai contoh, volume tipe configMap
bernama milvus-config ditentukan di bagian .spec.volumes
. Dan, pada bagian spec.template.spec.containers.volumeMounts
, volume tersebut dideklarasikan untuk memount milvus.yaml dari rilis Milvus Anda pada /milvus/configs/milvus.yaml. Dengan cara yang sama, Anda hanya perlu menambahkan deklarasi mount khusus untuk kontainer rootcoord untuk memount root_coord.yaml di /milvus/configs/advanced/root_coord.yaml, dan dengan demikian, kontainer tersebut dapat mengakses berkas konfigurasi yang baru.
spec:
replicas: 1
selector:
......
template:
metadata:
...
spec:
volumes:
- name: milvus-config
configMap:
name: milvus-chaos
defaultMode: 420
containers:
- name: rootcoord
image: 'milvusdb/milvus-dev:master-20210906-86afde4'
args:
...
ports:
...
resources: {}
volumeMounts:
- name: milvus-config
readOnly: true
mountPath: /milvus/configs/milvus.yaml
subPath: milvus.yaml
- name: milvus-config
readOnly: true
mountPath: /milvus/configs/advanced/`root_coord.yaml
subPath: root_coord.yaml
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
schedulerName: default-scheduler
Verifikasi hasilnya
Kubelet memeriksa apakah ConfigMap yang terpasang masih baru pada setiap sinkronisasi berkala. Ketika ConfigMap yang digunakan dalam volume diperbarui, kunci yang diproyeksikan juga secara otomatis diperbarui. Ketika pod baru berjalan lagi, Anda dapat memverifikasi apakah modifikasi berhasil di dalam pod. Perintah untuk memeriksa parameter rootcoord.dmlChannelNum
dibagikan di bawah ini.
$ kctl exec -ti milvus-chaos-rootcoord-6f56794f5b-xp2zs -- sh
# cd configs/advanced
# pwd
/milvus/configs/advanced
# ls
channel.yaml common.yaml data_coord.yaml data_node.yaml etcd.yaml proxy.yaml query_node.yaml root_coord.yaml
# cat root_coord.yaml
rootcoord:
dmlChannelNum: 128
maxPartitionNum: 4096
minSegmentSizeToEnableIndex: 1024
timeout: 3600 # time out, 5 seconds
timeTickInterval: 200 # ms
# exit
Di atas adalah metode untuk memodifikasi konfigurasi lanjutan dalam Milvus yang diterapkan pada Kubernetes. Rilis Milvus di masa mendatang akan mengintegrasikan semua konfigurasi dalam satu berkas, dan akan mendukung pembaruan konfigurasi melalui diagram helm. Namun sebelum itu, saya harap artikel ini dapat membantu Anda sebagai solusi sementara.
Bergabunglah dengan komunitas sumber terbuka kami:
- Latar Belakang
- Memodifikasi konfigurasi Milvus di Kubernetes
- Bergabunglah dengan komunitas sumber terbuka kami:
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word