创建混合云环境

以下说明集将向您展示如何在您的混合云环境中正确设置 Qdrant 集群

您还可以观看有关如何设置混合云环境的视频演示

要了解混合云的工作原理,请阅读概述文档

先决条件

  • Kubernetes 集群: 要创建混合云环境,您需要一个符合标准的 Kubernetes 集群。您可以在任何云、本地或边缘环境中运行此集群,其发行版范围从 AWS EKS 到 VMWare vSphere。更多信息请参见部署平台
  • 存储: 对于存储,您需要使用提供块存储的容器存储接口 (CSI) 驱动程序来设置 Kubernetes 集群。对于垂直扩展,CSI 驱动程序需要支持卷扩展。StorageClass 需要提前创建。对于备份和恢复,驱动程序需要支持 CSI 快照和恢复。VolumeSnapshotClass 需要提前创建。更多信息请参见部署平台
  • Kubernetes 节点: 您需要足够的 CPU 和内存容量来容纳您创建的 Qdrant 数据库集群。混合云控制平面组件也需要少量资源。Qdrant 混合云支持 x86_64 和 ARM64 架构。
  • 权限: 要安装 Qdrant Kubernetes Operator,您需要在 Kubernetes 集群中拥有 cluster-admin 访问权限。
  • 连接: 您集群中的 Qdrant Kubernetes Operator 需要能够连接到 Qdrant Cloud。它将创建到 cloud.qdrant.io 的端口 443 的出站连接。
  • 位置: 默认情况下,Qdrant Cloud Agent 和 Operator 从 registry.cloud.qdrant.io 拉取 Helm Charts 和容器镜像。Qdrant 数据库容器镜像从 docker.io 拉取。

注意: 您还可以将这些镜像和 Charts 镜像到您自己的 registry 并从那里拉取。

CLI 工具

在入门过程中,您需要使用 Helm 部署 Qdrant Kubernetes Operator 和 Agent。请确保您已安装以下工具

您需要通过配置为连接到 Kubernetes 集群的 kubectlhelm 来访问该集群。有关更多信息,请参阅您的 Kubernetes 发行版文档。

安装

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

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

注意: 您只需为您在混合云环境中创建的 Qdrant 集群付费,而无需为环境本身付费。

  1. 现在您可以指定以下内容
  • 名称: 混合云环境的名称
  • Kubernetes Namespace: 用于 operator 和 agent 的 Kubernetes Namespace。选择 Namespace 后,您无法更改它。

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

Create Hybrid Cloud Environment

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

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

  • 如果您使用代理从您的基础设施连接到 Qdrant Cloud API,您可以指定代理 URL、凭据和证书。
  • Qdrant Operator 和 Agent 镜像的容器 registry URL。默认值为 https://registry.cloud.qdrant.io/qdrant/
  • Qdrant Operator 和 Agent 的 Helm Chart 仓库 URL。默认值为 oci://registry.cloud.qdrant.io/qdrant-charts
  • 带有访问您自己的容器 registry 的凭据的可选 secret。
  • operator 和 agent 的日志级别
  • operator、agent 和监控堆栈的 Node 选择器和容忍度

Create Hybrid Cloud Environment - Advanced Configuration

  1. 完成后,点击创建

注意: 除了 Kubernetes Namespace 外,所有设置都可以在以后更改。

生成安装命令

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

Rotate Hybrid Cloud Secrets

它将

  • 创建 Kubernetes Namespace,如果不存在。
  • 设置必要的 secret 并附带凭据,以访问 Qdrant 容器 registry 和 Qdrant Cloud API。
  • 登录到 registry.cloud.qdrant.io 的 Helm registry。
  • 安装 Qdrant Cloud agent 和 Kubernetes operator Chart。

您仅在初次安装时需要此命令。之后,您可以使用 Qdrant Cloud Console 更新 agent 和 operator。

注意: 如果您第二次生成安装命令,它将重新生成包含的 secret,并且您必须再次应用该命令来更新它们。

高级配置

镜像镜像和 Charts

所需 Artifacts

容器镜像

  • 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 Charts

  • 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 Charts 镜像到您自己的 registry,您应该使用您的 registry 提供的自动复制功能,以便自动获得新的镜像版本。或者,您可以使用 Skopeo 等工具手动同步镜像。手动同步镜像时,请确保同步所有 CPU 架构或正确的 CPU 架构。

自动复制

确保您已同步 /qdrant/ 仓库中的容器镜像和 /qdrant-charts/ 仓库中的 Helm Charts。然后转到混合云环境的高级部分并配置您的 registry 位置

  • 容器 registry 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

如果您的 registry 需要认证,您必须在您的 the-qdrant-namespace Namespace 中创建自己的 secret,其中包含认证信息。

示例

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'

然后您可以在混合云环境的高级部分引用该 secret。

手动复制

此示例使用 Skopeo。

您可以在入门命令中找到您用于 Qdrant Cloud registry 的个人凭据,或者您可以使用 kubectl 获取它们

kubectl get secrets qdrant-registry-creds --namespace the-qdrant-namespace -o jsonpath='{.data.\.dockerconfigjson}' | base64 --decode | jq -r '.'

首先登录源 registry

skopeo login registry.cloud.qdrant.io

然后登录您自己的 registry

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 Charts

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

根据上述配置,您可以在混合云环境的高级部分添加以下值

  • 容器 registry URL:your-registry.example.com/qdrant
  • Chart 仓库 URL:oci://your-registry.example.com/qdrant-charts

如果您的 registry 需要认证,您可以按照上述方式创建并引用 secret。

docker.io 的速率限制

默认情况下,Qdrant 数据库镜像将从 Docker Hub 获取,Docker Hub 是主要的数据来源。Docker Hub 对匿名用户有速率限制。如果您有更大的部署并从那里获取其他镜像,您可能会遇到这些限制。要解决此问题,您可以提供 Docker Hub 的认证信息。

首先,在您的 the-qdrant-namespace Namespace 中使用您的 Docker Hub 凭据创建一个 secret

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>

然后,您可以通过在混合云环境高级部分的 operator 配置 YAML 编辑器中添加以下配置来引用此 secret

qdrant:
  image:
    pull_secret: "dockerhub-registry-secret"

轮换 Secret

如果您需要轮换 secret 以便从 Qdrant registry 拉取容器镜像和 Charts 并向 Qdrant Cloud API 进行认证,您可以按照以下步骤进行操作

  • 转到混合云环境列表或环境详情页。
  • 在操作菜单中,选择“轮换 Secret”
  • 确认操作
  • 您将收到一个可以在 Kubernetes 集群中运行的新安装命令,用于更新 secret。

如果您不运行安装命令,secret 将不会更新,并且您的混合云环境与 Qdrant Cloud 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 Issue。