跳到主要内容

使用 Kubernetes 安装 Milvus 单机版

本主题介绍如何使用 Kubernetes 安装 Milvus 单机版。

前提条件

在安装之前,请检查硬件和软件要求

使用 minikube 创建 K8s 集群

我们建议使用 minikube 在本地安装 K8s,这是一个允许您在本地运行 K8s 的工具。

1. 安装 minikube

更多信息请参见安装 minikube

2. 使用 minikube 启动 K8s 集群

安装 minikube 后,运行以下命令启动 K8s 集群。

$ minikube start

3. 检查 K8s 集群状态

运行 $ kubectl cluster-info 检查您刚刚创建的 K8s 集群的状态。确保您可以通过 kubectl 访问 K8s 集群。如果您尚未在本地安装 kubectl,请参见在 minikube 中使用 kubectl

minikube 在安装时依赖默认 StorageClass。运行以下命令检查依赖。其他安装方法需要手动配置 StorageClass。更多信息请参见更改默认 StorageClass

$ kubectl get sc
NAME                  PROVISIONER                  RECLAIMPOLICY    VOLUMEBIINDINGMODE    ALLOWVOLUMEEXPANSION     AGE
standard (default) k8s.io/minikube-hostpath Delete Immediate false 3m36s

4. 检查默认存储类

Milvus 依赖默认存储类来自动配置数据持久化的卷。运行以下命令检查存储类:

$ kubectl get sc

命令输出应类似于以下内容:

NAME                   PROVISIONER                                     RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
local-path (default) rancher.io/local-path Delete WaitForFirstConsumer false 461d

安装 Milvus 的 Helm Chart

Helm 是一个 K8s 包管理器,可以帮助您快速部署 Milvus。

  1. 将 Milvus 添加到 Helm 的仓库。
$ helm repo add milvus https://zilliztech.github.io/milvus-helm/

位于 https://milvus-io.github.io/milvus-helm/ 的 Milvus Helm Charts 仓库已归档,您可以从 https://zilliztech.github.io/milvus-helm/ 获取进一步的更新,如下所示:

helm repo add zilliztech https://zilliztech.github.io/milvus-helm
helm repo update
# 升级现有的 helm release
helm upgrade my-release zilliztech/milvus

归档的仓库仍然可用于 4.0.31 及之前的版本。对于更新的版本,请使用新仓库。

  1. 更新本地 chart 仓库。
$ helm repo update

启动 Milvus

安装 Helm chart 后,您可以在 Kubernetes 上启动 Milvus。在本节中,我们将指导您完成启动 Milvus 的步骤。

您应该通过指定 release 名称、chart 和要更改的参数来使用 Helm 启动 Milvus。在本指南中,我们使用 my-release 作为 release 名称。如果要使用不同的 release 名称,请在以下命令中将 my-release 替换为您要使用的名称。

$ helm install my-release milvus/milvus --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsarv3.enabled=false

更多信息请参见 Milvus Helm ChartHelm

检查正在运行的 pod 的状态。

$ kubectl get pods

Milvus 启动后,所有 pod 的 READY 列显示 1/1

NAME                                               READY   STATUS      RESTARTS   AGE
my-release-etcd-0 1/1 Running 0 30s
my-release-milvus-standalone-54c4f88cb9-f84pf 1/1 Running 0 30s
my-release-minio-5564fbbddc-mz7f5 1/1 Running 0 30s

连接到 Milvus

验证 Milvus 服务器正在监听的本地端口。将 pod 名称替换为您自己的。

$ kubectl get pod my-release-milvus-standalone-54c4f88cb9-f84pf --template='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
19530

打开一个新终端并运行以下命令,将本地端口转发到 Milvus 使用的端口。您也可以省略指定的端口,使用 :19530kubectl 为您分配一个本地端口,这样您就不必管理端口冲突。

$ kubectl port-forward service/my-release-milvus 27017:19530
Forwarding from 127.0.0.1:27017 -> 19530

默认情况下,kubectl 转发的端口只监听 localhost。如果您希望 Milvus 服务器监听选定的 IP 或所有地址,请使用 address 标志。

$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530
Forwarding from 0.0.0.0:27017 -> 19530

卸载 Milvus

运行以下命令卸载 Milvus。

$ helm uninstall my-release

停止 K8s 集群

停止集群和 minikube VM,但不删除您创建的资源。

$ minikube stop

运行 minikube start 重启集群。

删除 K8s 集群

在删除集群之前,运行 $ kubectl logs pod_name 获取 pod 的 stderr 日志。

删除集群、minikube VM 和所有您创建的资源,包括持久卷。

$ minikube delete

下一步

安装 Milvus 后,您可以: