创建混合云环境

以下说明集将向您展示如何在您的混合云环境中正确设置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.ioapi.cloud.qdrant.io的出站连接。
  • 位置:默认情况下,Qdrant服务(如Qdrant云代理、Operator和集群管理器)从registry.cloud.qdrant.io拉取Helm chart和容器镜像。Qdrant数据库容器镜像从docker.io拉取。有关完整列表,请参阅镜像镜像和chart

注意:您也可以将这些镜像和chart镜像到自己的注册表并从中拉取。

CLI工具

在入门期间,您需要使用Helm部署Qdrant云代理。请确保您已安装以下工具

您需要能够使用kubectlhelm访问Kubernetes集群,并配置它们以连接到集群。请参阅您的Kubernetes分发版文档以获取更多信息。

安装

  1. 要设置混合云,请在cloud.qdrant.io打开Qdrant云控制台。在仪表板上,选择混合云

  2. 在创建您的第一个混合云环境之前,您必须提供账单信息并接受混合云许可协议。安装向导将引导您完成此过程。

注意:您只会被收取在混合云环境中创建的Qdrant集群的费用,而不会收取环境本身的费用。

  1. 现在您可以指定以下内容
  • 名称:混合云环境的名称
  • Kubernetes命名空间:服务(如代理和operator)的Kubernetes命名空间。一旦选择了一个命名空间,就无法更改。

如果您想偏离集群的默认设置,还可以配置用于Qdrant数据库的StorageClass和VolumeSnapshotClass。

默认情况下,Qdrant云将为每个Qdrant Pod配置两个卷:一个用于Qdrant中存储的数据,一个用于集合快照。默认情况下,两个卷将使用相同的StorageClass。您还可以在混合云环境的高级配置选项中配置不同的StorageClass。如果要禁用快照卷,可以将emptyDir配置为快照StorageClass。

Create Hybrid Cloud Environment

  1. 然后您可以输入Kubernetes operator的YAML配置。Qdrant支持特定的配置选项列表,如Qdrant Operator配置部分所述。

  2. (可选)如果对以下任何一项有特殊要求,请激活显示高级配置选项

  • 如果您使用代理从您的基础设施连接到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、代理、集群管理器和监控堆栈的节点选择器和容忍度。

Create Hybrid Cloud Environment - Advanced Configuration

  1. 完成后,点击创建

注意:除了Kubernetes命名空间之外,所有设置都可以在以后更改。

生成安装命令

创建混合云后,选择生成安装命令以生成一个可在Kubernetes集群中运行的脚本,该脚本将执行Kubernetes operator和代理的初始安装。

Rotate Hybrid Cloud Secrets

它将

  • 如果Kubernetes命名空间不存在,则创建它。
  • 设置必要的秘密,其中包含访问Qdrant容器注册表和Qdrant云API的凭据。
  • 登录到registry.cloud.qdrant.io的Helm注册表。
  • 安装Qdrant云代理和Kubernetes operator chart。

您只需要此命令进行初始安装。之后,您可以使用Qdrant云控制台更新代理和operator。

注意:如果您第二次生成安装命令,它将重新生成包含的秘密,您将不得不再次应用该命令来更新它们。

高级配置

镜像镜像和chart

所需工件

容器镜像

  • registry.cloud.qdrant.io/qdrant/qdrant
  • registry.cloud.qdrant.io/qdrant/qdrant-cloud-agent
  • registry.cloud.qdrant.io/qdrant/operator
  • registry.cloud.qdrant.io/qdrant/cluster-manager
  • registry.cloud.qdrant.io/qdrant/prometheus
  • registry.cloud.qdrant.io/qdrant/prometheus-config-reloader
  • registry.cloud.qdrant.io/qdrant/kube-state-metrics
  • registry.cloud.qdrant.io/qdrant/kubernetes-event-exporter
  • registry.cloud.qdrant.io/qdrant/qdrant-cluster-exporter

开放容器倡议(OCI)Helm chart

  • registry.cloud.qdrant.io/qdrant-charts/qdrant-cloud-agent
  • registry.cloud.qdrant.io/qdrant-charts/operator
  • registry.cloud.qdrant.io/qdrant-charts/qdrant-cluster-manager
  • registry.cloud.qdrant.io/qdrant-charts/prometheus
  • registry.cloud.qdrant.io/qdrant-charts/kubernetes-event-exporter
  • registry.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之间的通信将无法工作。

Rotate Hybrid Cloud Secrets

删除混合云环境

要删除混合云环境,首先删除其中所有Qdrant数据库集群。然后您可以删除环境本身。

在删除混合云环境后,要清理您的Kubernetes集群,您可以从https://github.com/qdrant/qdrant-cloud-support-tools/tree/main/hybrid-cloud-cleanup下载脚本以删除所有Qdrant相关资源。

在连接到您的Kubernetes集群时运行以下命令。脚本需要安装kubectlhelm

./hybrid-cloud-cleanup.sh your-qdrant-namespace
此页面有用吗?

感谢您的反馈!🙏

很抱歉听到这个消息。😔 您可以在GitHub上编辑此页面,或创建一个GitHub问题。