创建混合云环境
以下说明集将向您展示如何在您的混合云环境中正确设置Qdrant集群。
您还可以观看视频演示,了解如何设置混合云环境
要了解混合云的工作原理,请阅读概述文档。
先决条件
- Kubernetes集群:要创建混合云环境,您需要一个标准兼容的Kubernetes集群。您可以在任何云、本地或边缘环境运行此集群,分发版从AWS EKS到VMWare vSphere不等。有关更多信息,请参阅部署平台。
- 存储:对于存储,您需要使用提供块存储的容器存储接口(CSI)驱动程序设置Kubernetes集群。为了实现垂直扩展,CSI驱动程序需要支持卷扩展。
StorageClass需要提前创建。为了进行备份和恢复,驱动程序需要支持CSI快照和恢复。VolumeSnapshotClass需要提前创建。有关更多信息,请参参阅部署平台。
- Kubernetes节点:您需要足够的CPU和内存容量来容纳您创建的Qdrant数据库集群。混合云控制平面组件也需要少量资源。Qdrant混合云支持x86_64和ARM64架构。
- 权限:要安装Qdrant云代理,您需要在Kubernetes集群中具有
cluster-admin访问权限。 - 连接:您集群中的Qdrant云代理需要能够连接到Qdrant云。它将通过端口
443创建到grpc.cloud.qdrant.io和api.cloud.qdrant.io的出站连接。 - 位置:默认情况下,Qdrant服务(如Qdrant云代理、Operator和集群管理器)从
registry.cloud.qdrant.io拉取Helm chart和容器镜像。Qdrant数据库容器镜像从docker.io拉取。有关完整列表,请参阅镜像镜像和chart。
注意:您也可以将这些镜像和chart镜像到自己的注册表并从中拉取。
CLI工具
在入门期间,您需要使用Helm部署Qdrant云代理。请确保您已安装以下工具
您需要能够使用kubectl和helm访问Kubernetes集群,并配置它们以连接到集群。请参阅您的Kubernetes分发版文档以获取更多信息。
安装
要设置混合云,请在cloud.qdrant.io打开Qdrant云控制台。在仪表板上,选择混合云。
在创建您的第一个混合云环境之前,您必须提供账单信息并接受混合云许可协议。安装向导将引导您完成此过程。
注意:您只会被收取在混合云环境中创建的Qdrant集群的费用,而不会收取环境本身的费用。
- 现在您可以指定以下内容
- 名称:混合云环境的名称
- Kubernetes命名空间:服务(如代理和operator)的Kubernetes命名空间。一旦选择了一个命名空间,就无法更改。
如果您想偏离集群的默认设置,还可以配置用于Qdrant数据库的StorageClass和VolumeSnapshotClass。
默认情况下,Qdrant云将为每个Qdrant Pod配置两个卷:一个用于Qdrant中存储的数据,一个用于集合快照。默认情况下,两个卷将使用相同的StorageClass。您还可以在混合云环境的高级配置选项中配置不同的StorageClass。如果要禁用快照卷,可以将emptyDir配置为快照StorageClass。

然后您可以输入Kubernetes operator的YAML配置。Qdrant支持特定的配置选项列表,如Qdrant Operator配置部分所述。
(可选)如果对以下任何一项有特殊要求,请激活显示高级配置选项
- 如果您使用代理从您的基础设施连接到Qdrant云API,您可以指定代理URL、凭据和证书。
- Qdrant服务(如Agent、Operator、集群管理器和监控堆栈)镜像的容器注册表URL。默认值为https://registry.cloud.qdrant.io/qdrant/。
- Qdrant服务的Helm chart存储库URL。默认值为oci://registry.cloud.qdrant.io/qdrant-charts。
- 一个可选的秘密,包含访问您自己的容器注册表的凭据。
- operator和代理的日志级别。
- operator、代理、集群管理器和监控堆栈的节点选择器和容忍度。

- 完成后,点击创建。
注意:除了Kubernetes命名空间之外,所有设置都可以在以后更改。
生成安装命令
创建混合云后,选择生成安装命令以生成一个可在Kubernetes集群中运行的脚本,该脚本将执行Kubernetes operator和代理的初始安装。

它将
- 如果Kubernetes命名空间不存在,则创建它。
- 设置必要的秘密,其中包含访问Qdrant容器注册表和Qdrant云API的凭据。
- 登录到
registry.cloud.qdrant.io的Helm注册表。 - 安装Qdrant云代理和Kubernetes operator chart。
您只需要此命令进行初始安装。之后,您可以使用Qdrant云控制台更新代理和operator。
注意:如果您第二次生成安装命令,它将重新生成包含的秘密,您将不得不再次应用该命令来更新它们。
高级配置
镜像镜像和chart
所需工件
容器镜像
registry.cloud.qdrant.io/qdrant/qdrantregistry.cloud.qdrant.io/qdrant/qdrant-cloud-agentregistry.cloud.qdrant.io/qdrant/operatorregistry.cloud.qdrant.io/qdrant/cluster-managerregistry.cloud.qdrant.io/qdrant/prometheusregistry.cloud.qdrant.io/qdrant/prometheus-config-reloaderregistry.cloud.qdrant.io/qdrant/kube-state-metricsregistry.cloud.qdrant.io/qdrant/kubernetes-event-exporterregistry.cloud.qdrant.io/qdrant/qdrant-cluster-exporter
开放容器倡议(OCI)Helm chart
registry.cloud.qdrant.io/qdrant-charts/qdrant-cloud-agentregistry.cloud.qdrant.io/qdrant-charts/operatorregistry.cloud.qdrant.io/qdrant-charts/qdrant-cluster-managerregistry.cloud.qdrant.io/qdrant-charts/prometheusregistry.cloud.qdrant.io/qdrant-charts/kubernetes-event-exporterregistry.cloud.qdrant.io/qdrant-charts/qdrant-cluster-exporter
要将所有必要的容器镜像和Helm chart镜像到您自己的注册表,您应该使用您的注册表提供的自动复制功能,以便自动获得新的镜像版本。或者,您可以使用Skopeo等工具手动同步镜像。手动同步镜像时,请确保您同步所有或正确的CPU架构。
自动复制
确保您已同步/qdrant/存储库中的容器镜像和/qdrant-charts/存储库中的helm chart。然后转到混合云环境的高级部分并配置您的注册表位置
- 容器注册表URL:
your-registry.example.com/qdrant(例如,这将导致your-registry.example.com/qdrant/qdrant-cloud-agent) - Chart存储库URL:
oci://your-registry.example.com/qdrant-charts(例如,这将导致oci://your-registry.example.com/qdrant-charts/qdrant-cloud-agent)
如果您的注册表需要身份验证,您必须在您的the-qdrant-namespace命名空间中创建自己的包含身份验证信息的秘密。
示例
kubectl --namespace the-qdrant-namespace create secret docker-registry my-creds --docker-server='your-registry.example.com' --docker-username='your-username' --docker-password='your-password'
然后您可以在混合云环境的高级部分引用它们。
手动复制
此示例使用Skopeo。
您可以在入门命令中找到Qdrant云注册表的个人凭据,或者您可以使用kubectl获取它们
kubectl get secrets qdrant-registry-creds --namespace the-qdrant-namespace -o jsonpath='{.data.\.dockerconfigjson}' | base64 --decode | jq -r '.'
首先登录到源注册表
skopeo login registry.cloud.qdrant.io
然后登录到您自己的注册表
skopeo login your-registry.example.com
同步所有容器镜像
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant/operator your-registry.example.com/qdrant/operator
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant/qdrant-cloud-agent your-registry.example.com/qdrant/qdrant-cloud-agent
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant/prometheus your-registry.example.com/qdrant/prometheus
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant/prometheus-config-reloader your-registry.example.com/qdrant/prometheus-config-reloader
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant/kube-state-metrics your-registry.example.com/qdrant/kube-state-metrics
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant/qdrant your-registry.example.com/qdrant/qdrant
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant/cluster-manager your-registry.example.com/qdrant/cluster-manager
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant/qdrant-cluster-exporter your-registry.example.com/qdrant/qdrant-cluster-exporter
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant/kubernetes-event-exporter your-registry.example.com/qdrant/kubernetes-event-exporter
同步所有helm chart
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant-charts/prometheus your-registry.example.com/qdrant-charts/prometheus
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant-charts/operator your-registry.example.com/qdrant-charts/operator
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant-charts/qdrant-kubernetes-api your-registry.example.com/qdrant-charts/qdrant-kubernetes-api
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant-charts/qdrant-cloud-agent your-registry.example.com/qdrant-charts/qdrant-cloud-agent
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant-charts/qdrant-cluster-exporter your-registry.example.com/qdrant-charts/qdrant-cluster-exporter
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant-charts/kubernetes-event-exporter your-registry.example.com/qdrant-charts/kubernetes-event-exporter
通过上述配置,您可以将以下值添加到混合云环境的高级部分
- 容器注册表URL:
your-registry.example.com/qdrant - Chart存储库URL:
oci://your-registry.example.com/qdrant-charts
如果您的注册表需要身份验证,您可以像上述那样创建和引用秘密。
docker.io的速率限制
默认情况下,Qdrant数据库镜像将从Docker Hub获取,这是主要的真实来源。Docker Hub对匿名用户有速率限制。如果您有更大的设置并且也从那里获取其他镜像,您可能会遇到这些限制。为了解决这个问题,您可以提供Docker Hub的身份验证信息。
首先,在您的the-qdrant-namespace命名空间中创建一个包含您的Docker Hub凭据的秘密
kubectl create secret docker-registry dockerhub-registry-secret --namespace the-qdrant-namespace --docker-server=https://index.docker.io/v1/ --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
然后,您可以通过在混合云环境的高级部分的操作员配置YAML编辑器中添加以下配置来引用此秘密
qdrant:
image:
pull_secret: "dockerhub-registry-secret"
轮换秘密
如果您需要轮换秘密以从Qdrant注册表拉取容器镜像和chart,并向Qdrant云API进行身份验证,您可以按照以下步骤操作
- 转到混合云环境列表或环境的详细信息页面。
- 在操作菜单中,选择“轮换秘密”
- 确认操作
- 您将收到一个可在Kubernetes集群中运行的新安装命令,以更新秘密。
如果您不运行安装命令,秘密将不会更新,您的混合云环境和Qdrant云API之间的通信将无法工作。

删除混合云环境
要删除混合云环境,首先删除其中所有Qdrant数据库集群。然后您可以删除环境本身。
在删除混合云环境后,要清理您的Kubernetes集群,您可以从https://github.com/qdrant/qdrant-cloud-support-tools/tree/main/hybrid-cloud-cleanup下载脚本以删除所有Qdrant相关资源。
在连接到您的Kubernetes集群时运行以下命令。脚本需要安装kubectl和helm。
./hybrid-cloud-cleanup.sh your-qdrant-namespace