Attention: Deprecation notice for Bintray, JCenter, GoCenter and ChartCenter. Learn More

milvus/milvus

Chart version: 0.10.6
Api version: v1
App version: 0.10.6
Milvus is an open source similarity search engine for massive-s...
application
Chart Type
Active
Status
Unknown
License
2349
Downloads
https://milvus-io.github.io/milvus-helm
Set me up:
helm repo add center https://repo.chartcenter.io
Install Chart:
helm install milvus center/milvus/milvus
Versions (0)

Milvus Helm Chart

For more information about installing and using Helm, see the Helm Docs. For a quick introduction to Charts, see the Chart Guide.

To install Milvus, refer to Milvus installation.

Introduction

This chart bootstraps Milvus deployment on a Kubernetes cluster using the Helm package manager.

Prerequisites

  • Kubernetes 1.10+
  • Helm >= 2.12.0

Installing the Chart

  1. Add the stable repository bash $ helm repo add stable https://charts.helm.sh/stable $ helm repo add milvus https://milvus-io.github.io/milvus-helm/ 2. Update charts repositories “`

$ helm repo update


3. Install Helm package

To install the chart with the release name `my-release`:

```bash
# Helm v2.x
$ helm install --name my-release milvus/milvus

or

# Helm v3.x
$ helm install my-release milvus/milvus

Tip: To list all releases, using helm list.

Deploying Milvus with cluster enabled

$ helm install --set cluster.enabled=true --set persistence.enabled=true my-release  .

NOTE: Since all Pods should have the same collection of Milvus files, it is recommended to create just one PV that is shared. This is controlled by setting persistence.enabled=true. You will have to ensure yourself the PVC are shared properly between your pods: - If you are on AWS, you can use Elastic File System (EFS). - If you are on Azure, you can use Azure File Storage (AFS).

To share a PV with multiple Pods, the PV needs to have accessMode ‘ReadOnlyMany’ or ‘ReadWriteMany’.

Uninstall the Chart

To uninstall/delete the my-release deployment:

# Helm v2.x
$ helm delete my-release

or

# Helm v3.x
$ helm uninstall my-release

The command removes all the Kubernetes components associated with the chart and deletes the release.

Configuration

Milvus server Configuration

The following table lists the configurable parameters of the Milvus chart and their default values.

Parameter Description Default
version Configuration Version 0.5
primaryPath Primary directory used to save meta data, vector data and index data. /var/lib/milvus
timeZone Use UTC-x or UTC+x to specify a time zone. UTC+8
autoFlushInterval The interval, in seconds, at which Milvus automatically flushes data to disk. 0 means disable the regular flush. (s) 1
fileCleanupTimeout The time gap between marking a file as ‘deleted’ and physically deleting this file from disk, range [0, 3600]. (s) 10
logs.path Absolute path to the folder holding the log files. /var/lib/milvus/logs
logs.maxLogFileSize The maximum size of each log file, size range [512, 4096]. (MB) 1024MB
logs.logRotateNum The maximum number of log files that Milvus keeps for each logging level, num range [0, 1024], 0 means unlimited. 0
cache.insertBufferSize Maximum insert buffer size allowed (GB) 1GB
cache.cacheSize Size of CPU memory used for cache (GB) 4GB
network.httpPort Port that Milvus web server monitors. 19121
wal.enabled Enable write-ahead logging. true
wal.recoveryErrorIgnore Whether to ignore logs with errors that happens during WAL true
wal.bufferSize Sum total of the read buffer and the write buffer. (MB) 256MB
wal.path Location of WAL log files. /var/lib/milvus/db/wal
gpu.enabled Enable GPU resources false
gpu.cacheSize Size of GPU memory per card used for cache (GB) 1GB
gpu.gpuSearchThreshold GPU search threshold 1000
gpu.searchDevices Define the GPU devices used for search computation [gpu0]
gpu.buildIndexDevices Define the GPU devices used for index building [gpu0]
metrics.enabled Set this to true to enable exporting Prometheus monitoring metrics false
metrics.address Pushgateway address 127.0.0.1
metrics.port Prometheus monitoring metrics port 9091
readonly.logs.path Absolute path to the folder holding the log files. /var/lib/milvus/logs
readonly.logs.maxLogFileSize The maximum size of each log file, size range [512, 4096]. (MB) 1024
readonly.logs.logRotateNum The maximum number of log files that Milvus keeps for each logging level, num range [0, 1024], 0 means unlimited. 0
readonly.cache.insertBufferSize Maximum insert buffer size allowed (GB) 1GB
readonly.cache.cacheSize Size of CPU memory used for cache (GB) 4GB
readonly.gpu.enabled Enable GPU resources false
readonly.gpu.cacheSize Size of GPU memory per card used for cache (GB) 1GB
readonly.gpu.gpuSearchThreshold GPU search threshold 1000
readonly.gpu.searchDevices Define the GPU devices used for search computation [gpu0]
readonly.gpu.buildIndexDevices Define the GPU devices used for index building [gpu0]
mishards.debug Choose if to enable Debug work mode. true
mishards.discoveryClassName Under the plug-in search path, search the class based on the class name, and instantiate it. Currently, the system provides 2 classes: static and kubernetes. kubernetes
mishards.trace.enabled Enable Mishards tracing service. false
mishards.trace.tracerClassName Under the plug-in search path, search the class based on the class name, and instantiate it. Currently, only Jaeger is supported. Jaeger
mishards.trace.tracingReportingHost The host of the tracing service. jaeger
mishards.trace.tracingReportingPort The port of the tracing service. 5775

Milvus Deployment Configuration

The following table lists the configurable parameters of the Milvus chart and their default values.

Parameter Description Default
cluster.enabled Create a Milvus cluster false
replicas Number of nodes 1
restartPolicy Restart policy for all containers Always
initContainerImage Init container image alpine:3.8
image.repository Image repository milvusdb/milvus
image.tag Image tag 0.10.6-cpu-d022221-64ddc2
image.pullPolicy Image pull policy IfNotPresent
image.pullSecrets Image pull secrets {}
image.resources CPU/GPU/Memory resource requests/limits {}
terminationGracePeriodSeconds Optional duration in seconds the pod needs to terminate gracefully 30
extraInitContainers Additional init containers []
extraContainers Additional containers unset
extraVolumes Additional volumes for use in extraContainers unset
extraVolumeMounts Additional volume mounts to add to the pods unset
extraConfigFiles Content of additional configuration files. {}
livenessProbe Liveness Probe settings { "tcpSocket": { "port": 19530 } "initialDelaySeconds": 15, "periodSeconds": 15, "timeoutSeconds": 10, "failureThreshold": 5 }
readinessProbe Readiness Probe settings { "tcpSocket": { "port": 19530 } "initialDelaySeconds": 15, "periodSeconds": 15, "timeoutSeconds": 10, "failureThreshold": 3 }
service.type Kubernetes service type ClusterIP
service.port Kubernetes port where service is exposed 19530
service.nodePort Kubernetes service nodePort unset
service.webNodePort Kubernetes web server nodePort unset
service.metricsNodePort Kubernetes metrics server nodePort unset
service.annotations Service annotations {}
service.labels Custom labels {}
service.clusterIP Internal cluster service IP unset
service.loadBalancerIP IP address to assign to load balancer (if supported) unset
service.loadBalancerSourceRanges list of IP CIDRs allowed access to lb (if supported) []
serivce.externalIPs service external IP addresses []
persistence.enabled Use persistent volume to store data false
persistence.annotations PersistentVolumeClaim annotations {}
persistence.persistentVolumeClaim.existingClaim Use your own data Persistent Volume existing claim name unset
persistence.persistentVolumeClaim.storageClass The Milvus data Persistent Volume Storage Class unset
persistence.persistentVolumeClaim.accessModes The Milvus data Persistence access modes ReadWriteMany
persistence.persistentVolumeClaim.size The size of Milvus data Persistent Volume Storage Class 50Gi
persistence.persistentVolumeClaim.subPath SubPath for Milvus data mount unset
logsPersistence.enabled Use persistent volume to store logs false
logsPersistence.annotations PersistentVolumeClaim annotations {}
logsPersistence.persistentVolumeClaim.existingClaim Use your own logs Persistent Volume existing claim name unset
logsPersistence.persistentVolumeClaim.storageClass The Milvus logs Persistent Volume Storage Class unset
logsPersistence.persistentVolumeClaim.accessModes The Milvus logs Persistence access modes ReadWriteMany
logsPersistence.persistentVolumeClaim.size The size of Milvus logs Persistent Volume Storage Class 5Gi
logsPersistence.persistentVolumeClaim.subPath SubPath for Milvus logs mount unset
nodeSelector Node labels for pod assignment {}
tolerations Toleration labels for pod assignment []
affinity Affinity settings for pod assignment {}
podAnnotations Additional pod annotations {}
podDisruptionBudget.minAvailable Pod disruption minimum available unset
podDisruptionBudget.maxUnavailable Pod disruption maximum unavailable unset
mishards.image.repository Mishards image repository milvusdb/mishards
mishards.image.tag Mishards image tag 0.10.6
mishards.image.pullPolicy Mishards image pull policy IfNotPresent
mishards.replicas Number of mishards nodes 1
mishards.resources Mishards CPU/GPU/Memory resource requests/limits {}
readonly.replicas Number of readonly nodes 1
mishards.resources Mishards CPU/GPU/Memory resource requests/limits {}
admin.enabled Enable deployment of Milvus admin false
admin.image.repository Milvus Admin image repository milvusdb/milvus-em
admin.image.tag Milvus Admin image tag v0.4.0
admin.image.pullPolicy Milvus Admin image pull policy IfNotPresent
admin.replicas Number of Milvus Admin nodes 1
admin.resources Milvus Admin CPU/GPU/Memory resource requests/limits {}
externalMysql.enabled Use exist mysql database false
externalMysql.ip IP address {}
externalMysql.port Port {}
externalMysql.user Username {}
externalMysql.password Password for the user {}
externalMysql.database Database name {}

MySQL Configuration

The following table lists the configurable parameters of the mysql chart and their default values.

Parameter Description Default
mysql.enabled Enable deployment of MySQL true
mysql.mysqlDatabase Database name milvus
mysql.imageTag Image targe 5.7.14
mysql.imagePullPolicy Image pull policy IfNotPresent
mysql.mysqlUser Username of new user to create. milvus
mysql.mysqlPassword Password for the new user. Ignored if existing secret is provided milvus
mysql.mysqlRootPassword Password for the root user. Ignored if existing secret is provided milvusroot
mysql.configurationFiles List of mysql configuration files ...
mysql.initializationFiles List of SQL files which are run after the container started ...
mysql.persistence.enabled Create a volume to store data true
mysql.persistence.existingClaim Name of existing persistent volume unset
mysql.persistence.annotations Persistent Volume annotations {}
mysql.persistence.storageClass Type of persistent volume claim unset
mysql.persistence.accessMode ReadWriteOnce or ReadOnly ReadWriteOnce
mysql.persistence.size Size of persistent volume claim 4Gi