-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Deploy Milvus on Azure with AKS
This topic describes how to provision and create a cluster with Azure Kubernetes Service (AKS) and the Azure portal.
Ensure that your Azure project has been set up properly and you have access to the resources that you want to use. Contact your administrators if you are not sure about your access permission.
Alternatively, you can use the Cloud Shell which has the Azure CLI, kubectl, and Helm preinstalled.
- Log on to the Azure portal.
- On the Azure portal menu or from the Home page, select Create a resource.
- Select Containers > Kubernetes Service.
- On the Basics page, configure the following options:
-
Project details:
-
Subscription: Contact your organization's Azure Administrator to determine which subscription you should use.
- Resource group: Contact your organization's Azure Administrator to determine which resource group you should use.
-
-
Cluster details:
-
Kubernetes cluster name: Enter a cluster name.
-
Region: Select a region.
-
Availability zones: Select availability zones as you need. For production clusters, we recommend that you select multiple availability zones.
-
-
Primary node pool:
-
Node size: We recommend that you choose VMs with a minimum of 16 GB of RAM, but you can select virtual machine sizes as you need.
-
Scale method: Choose a scale method.
-
Node count range: Select a range for the number of nodes.
-
-
Node pools:
-
Enable virtual nodes: Select the checkbox to enable virtual nodes.
-
Enable virtual machine scale sets: We recommend that you choose
enabled
.
-
-
Networking:
-
Network configuration: We recommend that you choose
Kubenet
. -
DNS name prefix: Enter a DNS name prefix.
-
Traffic Routing:
-
Load balancer:
Standard
. -
HTTP application routing: Not required.
-
-
- After configuring the options, click Review + create and then Create when validation completes. It takes a few minutes to create the cluster.
After the cluster is created, install Milvus on the cluster with Helm.
- Navigate to the cluster that you have created in Kubernetes services and click it.
- On the left-side navigation pane, click
Overview
. - On the Overview page that appears, click Connect to view the resource group and subscription.
- Run the following command to set your subscription.
az account set --subscription EXAMPLE-SUBSCRIPTION-ID
- Run the following command to download credentials and configure the Kubernetes CLI to use them.
az aks get-credentials --resource-group YOUR-RESOURCE-GROUP --name YOUR-CLUSTER-NAME
- Run the following command to add the Milvus Helm chart repository.
helm repo add milvus https://milvus-io.github.io/milvus-helm/
- Run the following command to update your Milvus Helm chart.
helm repo update
- Run the following command to install Milvus.
my-release
as the release name. Replace it with your release name.
helm install my-release milvus/milvus --set service.type=LoadBalancer
Starting pods might take several minutes. Run kubectl get services
to view services. If successful, a list of services is shown as follows.
20.81.111.155
in the the EXTERNAL-IP
column is the IP address of the load balancer. The default Milvus port is 19530
.
Azure Blob Storage is Azure's version of AWS Simple Storage Service (S3).
MinIO Azure Gateway allows accessing Azure. Essentially, MinIO Azure Gateway translates and forwards all connections to Azure by using APIs. You can use MinIO Azure Gateway instead of a MinIO server.
Set variables before you use MinIO Azure Gateway. Modify the default values as needed.
The following table lists the metadata that you can configure.
Option | Description | Default |
---|---|---|
minio.azuregateway.enabled |
Set the value to true to enable MinIO Azure Gateway. |
false |
minio.accessKey |
The MinIO access key. | "" |
minio.secretKey |
The MinIO secret key. | "" |
externalAzure.bucketName |
The name of the Azure bucket to use. Unlike an S3/MinIO bucket, an Azure bucket must be globally unique. | "" |
The following table lists the metadata that you might want to leave as default.
Option | Description | Default |
---|---|---|
minio.azuregateway.replicas |
The number of replica nodes to use for the gateway. We recommend that you use one because MinIO does not support well for more than one replica. | 1 |
Continue to use all predefined MinIO metadata variables.
The following example installs a chart named my-release
.
helm install my-release ./milvus --set service.type=LoadBalancer --set minio.persistence.enabled=false --set externalAzure.bucketName=milvusbuckettwo --set minio.azuregateway.enabled=true --set minio.azuregateway.replicas=1 --set minio.accessKey=milvusstorage --set minio.secretKey=your-azure-key