在混合云中创建Qdrant集群

一旦您创建了混合云环境,您就可以在该环境中创建一个Qdrant集群。使用相同的过程创建集群。确保选择您的混合云环境作为目标。

Create Hybrid Cloud Cluster

请注意,在“Kubernetes配置”部分,您还可以额外配置:

  • Qdrant数据库pod的节点选择器
  • Qdrant数据库pod的容忍度
  • Qdrant数据库pod的额外标签
  • Qdrant数据库服务的服务类型和注解

这些设置也可以在集群创建后在集群详情页面上更改。

Create Hybrid Cloud Cluster - Kubernetes Configuration

调度配置

在创建或编辑集群时,您可以配置数据库 Pod 在 Kubernetes 集群中的调度方式。这对于确保 Qdrant 数据库在专用节点上运行非常有用。您可以在集群创建期间的“Kubernetes 配置”部分或集群详细信息页面上配置必要的节点选择器和容忍度。

验证您的Qdrant集群

在混合云中,认证信息由Kubernetes secrets提供。

您可以在Qdrant集群详情页面的“配置”部分为您的Qdrant集群配置身份验证。在那里,您可以配置Kubernetes密钥名称和密钥,用作API密钥和/或只读API密钥。

Hybrid Cloud cluster configuration

创建密钥的一种方法是使用 kubectl:

kubectl create secret generic qdrant-api-key --from-literal=api-key=your-secret-api-key --namespace the-qdrant-namespace

生成的密钥将如下所示:

apiVersion: v1
data:
  api-key: ...
kind: Secret
metadata:
  name: qdrant-api-key
  namespace: the-qdrant-namespace
type: kubernetes.io/generic

使用此命令,密钥名称将为 qdrant-api-key,密钥将为 api-key

如果你想再次检索密钥,你也可以使用 kubectl

kubectl get secret qdrant-api-key -o jsonpath="{.data.api-key}" --namespace the-qdrant-namespace | base64 --decode

将Qdrant集群暴露给您的客户端应用程序

您可以使用Kubernetes服务和入口将您的Qdrant集群暴露给客户端应用程序。默认情况下,会为每个Qdrant集群创建一个ClusterIP服务。

在您的Kubernetes集群中,您可以使用服务名称和端口访问Qdrant集群:

http://qdrant-9a9f48c7-bb90-4fb2-816f-418a46a74b24.qdrant-namespace.svc:6333

此端点也在集群详情页面上可见。

如果你想从本地开发机器访问数据库,你可以使用kubectl port-forward将服务端口转发到你的本地机器:

kubectl --namespace your-qdrant-namespace port-forward service/qdrant-9a9f48c7-bb90-4fb2-816f-418a46a74b24 6333:6333

你也可以通过LoadBalancer(如果你的Kubernetes环境支持)或NodePort服务或入口将数据库暴露在Kubernetes集群之外。

服务类型和必要的注释可以在集群创建期间的“Kubernetes配置”部分或集群详细信息页面上进行配置。

特别是如果您创建了一个LoadBalancer服务,您可能需要为负载均衡器配置提供注释。请参阅您的云提供商的文档以获取更多详细信息。

示例:

你也可以像这样手动创建一个负载均衡器服务:

apiVersion: v1
kind: Service
metadata:
  name: qdrant-9a9f48c7-bb90-4fb2-816f-418a46a74b24-lb
  namespace: qdrant-namespace
spec:
  type: LoadBalancer
  ports:
  - name: http
    port: 6333
  - name: grpc
    port: 6334
  selector:
    app: qdrant
    cluster-id: 9a9f48c7-bb90-4fb2-816f-418a46a74b24

一个入口可能看起来像这样:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: qdrant-9a9f48c7-bb90-4fb2-816f-418a46a74b24
  namespace: qdrant-namespace
spec:
    rules:
    - host: qdrant-9a9f48c7-bb90-4fb2-816f-418a46a74b24.your-domain.com
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: qdrant-9a9f48c7-bb90-4fb2-816f-418a46a74b24
              port:
                number: 6333

请参阅Kubernetes、ingress控制器和云提供商文档以获取更多详细信息。

如果您这样暴露数据库,您将能够在集群详情页面上看到这也反映为一个端点。并且会看到指向它的Qdrant数据库仪表板链接。

配置TLS

如果你想为访问混合云中的Qdrant数据库配置TLS,有两种选择:

  • 您可以在入口或负载均衡器级别卸载TLS。
  • 您可以直接在Qdrant数据库中配置TLS。

如果您想在入口或负载均衡器级别卸载TLS,请参阅各自的文档。

如果你想直接在Qdrant数据库中配置TLS,你可以在Qdrant集群详情页面的“配置”部分引用包含TLS证书和密钥的密钥。

要创建这样的秘密,你可以使用 kubectl

 kubectl create secret tls qdrant-tls --cert=mydomain.com.crt --key=mydomain.com.key --namespace the-qdrant-namespace

生成的密钥将如下所示:

apiVersion: v1
data:
  tls.crt: ...
  tls.key: ...
kind: Secret
metadata:
  name: qdrant-tls
  namespace: the-qdrant-namespace
type: kubernetes.io/tls

使用此命令,需要在用户界面中输入的密钥名称将是 qdrant-tls,而密钥将是 tls.crttls.key

配置CPU和内存资源预留

在创建Qdrant数据库集群时,Qdrant Cloud会调度具有特定CPU和内存请求及限制的Pod,以确保最佳性能。它将使用相同的请求和限制以确保稳定性。理想情况下,Kubernetes节点应与Pod大小匹配,每个虚拟机运行一个数据库Pod。

默认情况下,Qdrant Cloud 会为每个 Pod 保留 20% 的可用 CPU 和内存。这样做是为了为操作系统、Kubernetes 和系统组件留出空间。这个保守的默认值可能需要根据节点大小进行调整,较小的节点可能需要保留更多资源,而较大的节点可能需要保留较少的资源。

您可以在Qdrant集群详情页面的“配置”部分修改此预订。

如果你想检查一个空的Kubernetes节点上有多少资源可用,你可以使用以下命令:

kubectl describe node <node-name>

这将为您提供Kubernetes可用资源的详细情况,以及已经为系统Pod保留和使用了多少资源。

这个页面有用吗?

感谢您的反馈!🙏

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