Qdrant 私有云设置
要求
- Kubernetes 集群:要安装 Qdrant 私有云,您需要一个符合标准的 Kubernetes 集群。您可以在任何云、本地或边缘环境中使用该集群,发行版从 AWS EKS 到 VMWare vSphere 不等。有关更多信息,请参阅部署平台。
- 存储: 对于存储,您需要使用提供块存储的容器存储接口 (CSI) 驱动程序设置 Kubernetes 集群。对于垂直扩展,CSI 驱动程序需要支持卷扩展。对于备份和恢复,驱动程序需要支持 CSI 快照和恢复。
- 权限:要安装 Qdrant Kubernetes Operator,您需要在 Kubernetes 集群中拥有
cluster-admin访问权限。 - 位置: 默认情况下,Qdrant Operator Helm chart 和容器镜像从
registry.cloud.qdrant.io提供。
注意:您也可以将这些镜像和 chart 镜像到您自己的注册表中并从那里拉取。
CLI 工具
在入职期间,您将需要使用 Helm 部署 Qdrant Kubernetes Operator。确保您已安装以下工具
您需要能够访问 Kubernetes 集群,并且 kubectl 和 helm 已配置为连接到该集群。有关更多信息,请参阅您的 Kubernetes 发行版的文档。
所需工件
容器镜像
registry.cloud.qdrant.io/qdrant/qdrantregistry.cloud.qdrant.io/qdrant/operatorregistry.cloud.qdrant.io/qdrant/cluster-managerregistry.cloud.qdrant.io/qdrant/qdrant-cluster-exporter
开放容器倡议 (OCI) Helm chart
registry.cloud.qdrant.io/qdrant-charts/qdrant-private-cloudregistry.cloud.qdrant.io/library/qdrant-kubernetes-api每个私有云版本的具体版本都在私有云变更日志中记录。
安装
入职 Qdrant 私有云后,您将收到访问 Qdrant 云注册表的凭据。您可以使用这些凭据通过以下命令安装 Qdrant 私有云解决方案
- 为您私有云部署创建命名空间。您可以为命名空间使用任何名称,但您需要更新后续步骤以反映此名称。例如
kubectl create namespace qdrant-private-cloud
- 使用您的 Qdrant 云注册表凭据创建 Kubernetes 密钥,以允许您的 Kubernetes 集群拉取必要的容器镜像
kubectl create secret docker-registry qdrant-registry-creds --docker-server=registry.cloud.qdrant.io --docker-username='your-username' --docker-password='your-password' --namespace qdrant-private-cloud
- 使用 Helm 登录 Qdrant 云注册表
helm registry login 'registry.cloud.qdrant.io' --username 'your-username' --password 'your-password'
- 安装 Qdrant Kubernetes Operator 自定义资源定义 (CRD)
helm upgrade --install qdrant-private-cloud-crds oci://registry.cloud.qdrant.io/qdrant-charts/qdrant-kubernetes-api --namespace qdrant-private-cloud --version v1.20.0 --wait
- 安装 Qdrant 私有云
helm upgrade --install qdrant-private-cloud oci://registry.cloud.qdrant.io/qdrant-charts/qdrant-private-cloud --namespace qdrant-private-cloud --version 1.9.2
确保 qdrant-kubernetes-api 版本与您正在安装的 qdrant-private-cloud 版本兼容。
有关可用版本列表,请参阅私有云变更日志。
当前默认版本是
- qdrant-kubernetes-api v1.20.0
- qdrant-private-cloud 1.9.2
有关更多信息,请参阅Helm 安装文档。
配置私有云
Qdrant 私有云 Helm chart 附带一组默认值,适用于大多数部署。但是,您可以进一步自定义配置以适应您的特定需求。有关所有可用配置选项,请参阅私有云配置页面。
您必须确保为您的环境适当地设置了默认的 StorageClasses 和相应的 VolumeSnapshotClass。
创建您自己的 values.yaml 文件时,作为最佳实践,只包含您实际更改的值,例如使用此 values.yaml 文件
operator:
settings:
features:
clusterManagement:
storageClass:
database: your-storage-class-name
snapshot: your-storage-class-name
backupManagement:
snapshots:
volumeSnapshotClass: your-volume-snapshot-class-name
您可以这样配置 Qdrant 私有云
helm upgrade --install qdrant-private-cloud oci://registry.cloud.qdrant.io/qdrant-charts/qdrant-private-cloud --namespace qdrant-private-cloud --version 1.9.2 -f values.yaml
升级
要将 Qdrant 私有云升级到新版本,请首先升级 Qdrant Kubernetes Operator 自定义资源定义 (CRD)
helm upgrade --install qdrant-private-cloud-crds oci://registry.cloud.qdrant.io/qdrant-charts/qdrant-kubernetes-api --namespace qdrant-private-cloud --version v1.20.0 --wait
然后使用相同的配置值升级 Qdrant 私有云 Helm chart,例如
helm upgrade --install qdrant-private-cloud oci://registry.cloud.qdrant.io/qdrant-charts/qdrant-private-cloud --namespace qdrant-private-cloud --version 1.9.2 -f values.yaml
请注意,镜像标签值是根据 chart 的 appVersions 自动派生的,不应在 values.yaml 中覆盖。
有关更多信息,请参阅Helm 升级文档。
镜像镜像和 chart
要将所有必要的容器镜像和 Helm chart 镜像到您自己的注册表中,您可以使用注册表提供的复制功能,或者您可以使用 Skopeo 手动同步镜像
首先登录源注册表
skopeo login registry.cloud.qdrant.io
然后登录您自己的注册表
skopeo login your-registry.example.com
同步所有容器镜像
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/operator your-registry.example.com/qdrant/operator
同步所有 helm chart
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant-charts/qdrant-private-cloud your-registry.example.com/qdrant-charts/qdrant-private-cloud
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
在安装或升级期间,您将需要调整 Helm chart 值中的镜像仓库和 imagePullSecret 信息,例如
operator:
image:
repository: your-registry.example.com/qdrant/operator
imagePullSecrets:
- name: your-registry-creds
settings:
features:
clusterManagement:
qdrant:
image:
repository: your-registry.example.com/qdrant/qdrant
pullSecretName: your-registry-creds
qdrant-cluster-manager:
image:
repository: your-registry.example.com/qdrant/cluster-manager
imagePullSecrets:
- name: your-registry-creds
qdrant-cluster-exporter:
image:
repository: your-registry.example.com/qdrant/qdrant-cluster-exporter
imagePullSecrets:
- name: your-registry-creds
有关详细信息,请参阅私有云配置。
Operator 的范围
默认情况下,Qdrant Operator 将只管理已部署的 Kubernetes 命名空间中的 Qdrant 集群。RoleBinding 也限于此特定命名空间。选择此默认值是为了将 Operator 限制在 Kubernetes 集群中所需的最小权限。
如果您想使用同一个 Operator 管理多个命名空间中的 Qdrant 集群,您可以配置 Operator 应该监视的命名空间列表
operator:
watch:
# If true, watches only the namespace where the Qdrant operator is deployed, otherwise watches the namespaces in watch.namespaces
onlyReleaseNamespace: false
# an empty list watches all namespaces.
namespaces:
- qdrant-private-cloud
- some-other-namespase
limitRBAC: true
或者您可以配置 Operator 监视所有命名空间
operator:
watch:
# If true, watches only the namespace where the Qdrant operator is deployed, otherwise watches the namespaces in watch.namespaces
onlyReleaseNamespace: false
# an empty list watches all namespaces.
namespaces: []
limitRBAC: false
卸载
要卸载 Qdrant 私有云解决方案,您可以使用以下命令
helm uninstall qdrant-private-cloud --namespace qdrant-private-cloud
helm uninstall qdrant-private-cloud-crds --namespace qdrant-private-cloud
kubectl delete namespace qdrant-private-cloud
请注意,卸载 qdrant-private-cloud-crds Helm chart 将删除所有自定义资源定义 (CRD),也将删除 Operator 管理的所有 Qdrant 集群。