在EKS上部署Milvus集群
本主题介绍如何在Amazon EKS (opens in a new tab)上部署Milvus集群。
本主题假定您有 AWS 访问管理的基本理解。
如果您不熟悉,请查看《AWS身份和访问管理文档》 (opens in a new tab)。
先决条件
软件需求
云安全
-
EKS、EC2和S3的访问权限
-
访问密钥ID
-
安全访问密钥
部署Milvus集群
- 从下面的代码块中复制代码,并将其保存为yaml格式的文件,将文件命名为milvus_cluster.yaml。
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: my-eks-cluster
region: us-west-2
version: "1.23"
nodeGroups:
- name: ng-1-workers
labels: { role: workers }
instanceType: m5.4xlarge
desiredCapacity: 2
volumeSize: 80
iam:
withAddonPolicies:
ebs: true
addons:
- name: aws-ebs-csi-driver
version: v1.13.0-eksbuild.1 # optional
运行以下命令以创建一个EKS集群。本主题中的示例使用my-eks-cluster
作为集群名称,并将“us-west-2”作为默认区域。
您可以将它们替换为您自己的值。有关更多信息,请参见开始使用Amazon EKS (opens in a new tab)。
eksctl create cluster -f milvus_cluster.yaml
如果EKS集群创建成功,您将看到以下输出。
...
[✓] EKS cluster "my-cluster" in "region-code" region is ready
- 在Milvus集群被配置后,使用区域和集群名称运行以下命令。
aws eks --region ${aws-region} update-kubeconfig --name ${cluster-name}
- 创建kubeconfig文件并运行
kubectl get svc
。如果成功,输出中会出现一个集群。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 106m
- 添加Milvus Helm存储库。
helm repo add milvus https://milvus-io.github.io/milvus-helm/
- 运行以下命令启动已配置的Milvus集群。使用S3作为存储需要访问密钥和S3存储桶。
helm upgrade --install --set cluster.enabled=true --set externalS3.enabled=true --set externalS3.host='s3.us-east-2.amazonaws.com' --set externalS3.port=80 --set externalS3.accessKey=${access-key} --set externalS3.secretKey=${secret-key} --set externalS3.bucketName=${bucket-name} --set minio.enabled=False --set service.type=LoadBalancer milvus milvus/milvus
- 再次运行
kubectl get svc
以检索负载均衡器的IP地址,并将其用作Milvus集群的IP地址。
运行 kubectl get pods
命令以查看群集中正在运行的 Pod。
扩展Milvus集群
目前,Milvus集群只能手动缩放。运行以下命令以修改具有不同类型节点实例的数量。
有关数据节点、索引节点、查询节点和代理的更多信息,请参见存储/计算分离 (opens in a new tab)。
helm upgrade --install --set cluster.enabled=true --set dataNode.replicas=1 --set indexNode.replicas=1 --set queryNode.replicas=1 --set proxy.replicas=1 --set externalS3.enabled=true --set externalS3.host='s3.us-east-2.amazonaws.com' --set externalS3.port=80 --set externalS3.accessKey=${access-key} --set externalS3.secretKey=${secret-key} --set externalS3.bucketName=${bucket-name} --set minio.enabled=False --set service.type=LoadBalancer milvus milvus/milvus
在运行前面的命令后,您可以运行kubectl get pods
查看新创建的节点实例。
下一步
如果您想学习如何在其他云上部署Milvus: