创建混合云环境
以下说明集将向您展示如何在您的混合云环境中正确设置 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 集群的 kubectl
和 helm
来访问该集群。有关更多信息,请参阅您的 Kubernetes 发行版文档。
安装
要设置混合云,请在 cloud.qdrant.io 打开 Qdrant Cloud Console。在仪表板上,选择混合云。
在创建您的第一个混合云环境之前,您必须提供账单信息并接受混合云许可协议。安装向导将指导您完成此过程。
注意: 您只需为您在混合云环境中创建的 Qdrant 集群付费,而无需为环境本身付费。
- 现在您可以指定以下内容
- 名称: 混合云环境的名称
- Kubernetes Namespace: 用于 operator 和 agent 的 Kubernetes Namespace。选择 Namespace 后,您无法更改它。
如果您想偏离集群的默认设置,您还可以配置用于 Qdrant 数据库的 StorageClass 和 VolumeSnapshotClass。
然后您可以输入 Kubernetes operator 的 YAML 配置。Qdrant 支持特定的配置选项列表,如Qdrant Operator 配置部分所述。
(可选)如果您对以下任何项有特殊要求,请激活显示高级配置选项
- 如果您使用代理从您的基础设施连接到 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 选择器和容忍度
- 完成后,点击创建。
注意: 除了 Kubernetes Namespace 外,所有设置都可以在以后更改。
生成安装命令
创建混合云后,选择生成安装命令以生成一个脚本,您可以在 Kubernetes 集群中运行该脚本,该脚本将执行 Kubernetes operator 和 agent 的初始安装。
它将
- 创建 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 之间的通信将无法工作。
删除混合云环境
要删除混合云环境,请先删除其中的所有 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