使用 Milvus Operator 配置 Milvus
在生产环境中,你需要根据机器类型和工作负载为 Milvus 集群分配资源。你可以在部署期间进行配置,也可以在集群运行时更新配置。
本文介绍了如何使用 Milvus Operator 安装并配置 Milvus 集群。
本文假设你已经部署了 Milvus Operator。有关更多信息,请参见 部署 Milvus Operator。
配置 Milvus 集群包括以下内容:
- 全局资源配置
- 私有资源配置
配置全局资源
使用 Milvus Operator 启动 Milvus 集群时,你需要指定一个配置文件。这里的示例使用默认的配置文件。
kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_cluster_default.yaml
配置文件的详细信息如下:
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
mode: cluster
dependencies: {}
components: {}
config: {}
spec.components
字段包括所有 Milvus 组件的全局和私有资源配置。下面是配置全局资源常用的四个字段。
image
:使用的 Milvus Docker 镜像。resources
:为每个组件分配的计算资源。tolerations
和nodeSelector
:K8s 集群中每个 Milvus 组件的调度规则。有关更多信息,请参见 tolerations (opens in a new tab) 和 nodeSelector (opens in a new tab)。env
:环境变量。
如果你想配置更多字段,请参考 此处的文档 (opens in a new tab)。
要为 Milvus 集群配置全局资源,请创建一个名为 milvuscluster_resource.yaml
的文件。
示例
以下示例为 Milvus 集群配置了全局资源。
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
mode: cluster
components:
image: milvusdb/milvus:v2.1.0
nodeSelector: {}
tolerations: {}
env: {}
resources:
limits:
cpu: '4'
memory: 8Gi
requests:
cpu: 200m
memory: 512Mi
运行以下命令应用新的配置:
kubectl apply -f milvuscluster_resource.yaml
配置私有资源
原始的 Milvus 2.0 中,Milvus 集群包括七个组件:代理(proxy)、根协调器(root coord)、数据协调器(data coord)、查询协调器(query coord)、索引节点(index node)、数据节点(data node)和查询节点(query node)。然而,随着 Milvus 2.1.0 的发布,新增了一个组件,混合协调器(mix coord)。混合协调器包括了所有的协调器组件。因此,启动混合协调器意味着你不需要安装和启动其他协调器,包括根协调器、数据协调器和查询协调器。
用于配置每个组件的常见字段包括:
replica
:每个组件的副本数量。port
:每个组件的监听端口号。- 全局资源配置中常用的四个字段:
image
、env
、nodeSelector
、tolerations
、resources
(请参考以上内容)。要获取更多可配置字段,请单击 此文档 (opens in a new tab) 中的每个组件。
要配置特定组件的资源,请首先在 spec.components
字段下添加组件名称,然后配置其私有资源。
示例
我下面列出了在 milvuscluster.yaml
文件中配置 proxy 和 datanode 的副本和计算资源的示例。
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
mode: 集群
components:
image: milvusdb/milvus:v2.1.0
resources:
limits:
cpu: '4'
memory: 8Gi
requests:
cpu: 200m
memory: 512Mi
rootCoord:
replicas: 1
port: 8080
resources:
limits:
cpu: '6'
memory: '10Gi'
dataCoord: {}
queryCoord: {}
indexCoord: {}
dataNode: {}
indexNode: {}
queryNode: {}
proxy:
replicas: 1
serviceType: ClusterIP
resources:
limits:
cpu: '2'
memory: 4Gi
requests:
cpu: 100m
memory: 128Mi
config: {}
dependencies: {}
运行以下命令应用新的配置:
kubectl apply -f milvuscluster.yaml
下一步
学习如何使用 Milvus Operator 管理以下 Milvus 依赖项: