Menyiapkan Load Balancer Layer-7 untuk Milvus di AWS
Jika dibandingkan dengan penyeimbang beban Layer-4, penyeimbang beban Layer-7 menawarkan kemampuan penyeimbangan beban dan caching yang cerdas dan merupakan pilihan yang tepat untuk layanan cloud-native.
Panduan ini memandu Anda dalam menyiapkan penyeimbang beban Layer-7 untuk cluster Milvus yang sudah berjalan di belakang penyeimbang beban Layer-4.
Sebelum memulai
Mengubah konfigurasi Milvus
Panduan ini mengasumsikan bahwa Anda telah menggunakan cluster Milvus di belakang penyeimbang beban Layer-4 di AWS.
Sebelum menyiapkan penyeimbang beban Layer-7 untuk klaster Milvus ini, jalankan perintah berikut untuk menghapus penyeimbang beban Layer-4.
helm upgrade milvus-demo milvus/milvus -n milvus --set service.type=ClusterIP
Siapkan sertifikat TLS
TLS membutuhkan sertifikat agar dapat berfungsi. Kami menggunakan ACM untuk mengelola sertifikat dan perlu mengimpor sertifikat yang sudah ada ke ACM. Lihat Mengimpor Sertifikat. Berikut ini adalah contohnya.
# If the import-certificate command is successful, it returns the arn of the imported certificate.
aws acm import-certificate --certificate fileb://Certificate.pem \
--certificate-chain fileb://CertificateChain.pem \
--private-key fileb://PrivateKey.pem
Membuat Ingress untuk menghasilkan Load Balancer Layer-7
Siapkan berkas ingress sebagai berikut dan beri nama ingress.yaml
. Ganti arn sertifikat dan host dengan milik Anda sendiri.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: milvus
name: milvus-demo
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/backend-protocol-version: GRPC
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
alb.ingress.kubernetes.io/certificate-arn: "arn:aws:acm:region:account-id:certificate/certificate-id"
spec:
ingressClassName: alb
rules:
- host: milvus-demo.milvus.io
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: milvus-demo
port:
number: 19530
Kemudian Anda dapat membuat Ingress dengan menerapkan file tersebut ke cluster EKS Anda.
kubectl apply -f ingress.yaml
Sekarang, tunggu AWS menyiapkan penyeimbang beban Layer-7. Anda dapat memeriksa kemajuannya dengan menjalankan
kubectl -f ingress.yaml get -w
Keluarannya akan serupa dengan yang berikut ini:
NAME CLASS HOSTS ADDRESS PORTS AGE
milvus-demo alb milvus-demo.milvus.io k8s-milvus-milvusde-2f72215c02-778371620.us-east-2.elb.amazonaws.com 80 10m
Setelah alamat ditampilkan pada bidang ADDRESS, penyeimbang beban Layer-7 siap digunakan.
Verifikasi koneksi melalui penyeimbang beban Layer-7
Panduan ini menggunakan PyMilvus untuk memverifikasi koneksi ke layanan Milvus di belakang penyeimbang beban Layer-7 yang baru saja kita buat. Untuk langkah-langkah terperinci, baca ini.
from pymilvus import (
connections,
utility,
FieldSchema,
CollectionSchema,
DataType,
Collection,
)
connections.connect("default", host="k8s-milvus-milvusde-2f72215c02-778371620.us-east-2.elb.amazonaws.com", port="443", secure=True, server_name="milvus-demo.milvus.io")
- Host dan nama_server harus diganti dengan nama Anda sendiri.
- Jika Anda telah menyiapkan catatan DNS untuk memetakan nama domain ke alb, ganti host dengan nama domain dan hilangkan nama_server.