AKS集群部署Qdrant后如何配置API Key访问控制?
在AKS上启用Qdrant API Key的可行方案
可以在AKS部署的Qdrant实例中启用API Key,核心是通过Kubernetes Secret传递API Key,并在StatefulSet配置中注入为环境变量,具体步骤如下:
创建存储API Key的Secret
选择以下一种方式创建Secret:- 命令行快速创建:
kubectl create secret generic qdrant-api-key --from-literal=api-key=your-secure-api-key-here - YAML文件创建(适合版本控制):
先将你的API Key做Base64编码(比如执行echo -n "your-secure-api-key-here" | base64),然后编写qdrant-secret.yaml:
执行apiVersion: v1 kind: Secret metadata: name: qdrant-api-key type: Opaque data: api-key: 你的Base64编码密钥kubectl apply -f qdrant-secret.yaml完成创建。
- 命令行快速创建:
修改StatefulSet配置注入环境变量
编辑Qdrant的StatefulSet配置(执行kubectl edit statefulset <你的statefulset名称>,通常是qdrant),在容器定义中添加环境变量QDRANT_API_KEY,关联到刚才创建的Secret:spec: template: spec: containers: - name: qdrant # 原有镜像、端口等配置保留 env: - name: QDRANT_API_KEY valueFrom: secretKeyRef: name: qdrant-api-key key: api-key保存退出后,Kubernetes会自动重启Qdrant Pod加载新配置。
验证API Key生效
尝试不带API Key访问Qdrant的API(比如curl http://<qdrant-service-ip>:6333/collections),应该返回401 Unauthorized;在请求头中携带API Key(curl -H "api-key: your-secure-api-key-here" http://<qdrant-service-ip>:6333/collections),即可正常返回数据,说明配置生效。
为什么之前的Secret绑定未生效?
大概率是未正确将Secret值注入为Qdrant识别的环境变量QDRANT_API_KEY——Qdrant会优先读取这个环境变量来启用API密钥验证,而非默认挂载的文件或其他未命名的变量。
内容的提问来源于stack exchange,提问作者Jeff
相关产品推荐
相关产品推荐

