我最近按照本文档 (https://github.com/Azure-Samples/qdrant-azure/blob/main/Azure-Kubernetes-Svc/README.md) 将 qdrant 部署到 AKS 集群上,一切都很顺利按预期工作。但是,我注意到我不需要输入 API 密钥来访问或编辑我的数据库。但是,我不知道在哪里可以实现此设置。
我首先尝试在 AKS 中创建一个秘密实例并将其绑定到 StatefulSet,但是,这似乎并没有成功。在阅读了大量官方文档后,设置 API KEY 的唯一方法似乎是在 Qdrant Cloud 网站上创建集群或在 QdrantClusterSetting.yaml 中启用 API KEY。在我目前的状态下,这两个似乎都无关紧要。在 AKS 上启用 API 密钥是否可以实现?预先感谢。
要在启用 API 密钥身份验证的 AKS 上设置 Qdrant, 使用 StatefulSet 部署 Qdrant
kubectl create secret generic qdrant-api-key-secret --from-literal=api-key=b//ZtUPcPLY2i5ktrqdZ0EUvstHkeezHjAQCK6aamRQ= -n qdrant
使用 StatefulSet 部署 Qdrant
apiVersion: v1
kind: Service
metadata:
name: qdrant
namespace: qdrant
spec:
ports:
- port: 6333
targetPort: 6333
protocol: TCP
clusterIP: None
selector:
app: qdrant
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: qdrant
namespace: qdrant
spec:
serviceName: "qdrant"
replicas: 1
selector:
matchLabels:
app: qdrant
template:
metadata:
labels:
app: qdrant
spec:
containers:
- name: qdrant
image: qdrant/qdrant:v1.2.0
ports:
- containerPort: 6333
name: qdrant
env:
- name: QDRANT__SERVICE__API_KEY
valueFrom:
secretKeyRef:
name: qdrant-api-key-secret
key: api-key
volumeMounts:
- name: qdrant-data
mountPath: /qdrant/storage
volumes:
- name: qdrant-data
persistentVolumeClaim:
claimName: qdrant-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: qdrant-pvc
namespace: qdrant
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
通过负载均衡器公开 Qdrant
apiVersion: v1
kind: Service
metadata:
name: qdrant-loadbalancer
namespace: qdrant
spec:
selector:
app: qdrant
ports:
- protocol: TCP
port: 80
targetPort: 6333
type: LoadBalancer
获取Qdrant服务的外部IP
kubectl get service qdrant-loadbalancer -n qdrant
要验证 Qdrant 是否可访问且 API 密钥身份验证是否正常工作,请使用您的 API 密钥向外部 IP 发出 HTTP 请求
curl -H "API-Key: b//ZtUPcPLY2i5ktrqdZ0EUvstHkeezHjAQCK6aamRQ=" http://4.236.219.119:80
如果一切设置正确,您将收到来自 Qdrant 的类似于以下的响应 -