skills/kubeblocks-addon-qdrant/SKILL.md
Deploy and manage Qdrant vector database clusters on KubeBlocks for vector search, similarity search, and embedding storage. Use when the user mentions Qdrant, vector database, vector search, similarity search, embedding, RAG, or explicitly wants to create a Qdrant cluster. Provides cluster creation, connection via REST API, and Day-2 operations. For generic cluster creation across all engines, see kubeblocks-create-cluster. For Day-2 operations (scaling, etc.), use the corresponding operation skill.
npx skillsauth add apecloud/kubeblocks-skills kubeblocks-addon-qdrantInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Deploy Qdrant vector database clusters on Kubernetes using KubeBlocks. Qdrant is a high-performance vector similarity search engine optimized for AI-driven applications such as semantic search, RAG, and recommendation systems. Multiple replicas form a distributed cluster with data sharding.
Official docs: https://kubeblocks.io/docs/preview/kubeblocks-for-qdrant/01-overview Quickstart: https://kubeblocks.io/docs/preview/kubeblocks-for-qdrant/02-quickstart
# Check if qdrant addon is installed
helm list -n kb-system | grep qdrant
# Install if missing
helm install kb-addon-qdrant kubeblocks/qdrant --namespace kb-system --version 1.0.0
| Topology | Value | Component | Use Case |
|---|---|---|---|
| Cluster | cluster | qdrant | Single topology, distributed with data sharding |
| Version | serviceVersion |
|---|---|
| 1.5 | 1.5.0 |
| 1.7 | 1.7.3 |
| 1.8 | 1.8.1, 1.8.4 |
| 1.10 | 1.10.0 |
| 1.13 | 1.13.4 |
| 1.15 | 1.15.4 |
List available versions: kubectl get cmpv qdrant
- [ ] Step 1: Ensure addon is installed
- [ ] Step 2: Create namespace
- [ ] Step 3: Create cluster (dry-run then apply)
- [ ] Step 4: Wait for cluster to be ready
- [ ] Step 5: Connect via REST API
helm list -n kb-system | grep qdrant
If not found:
helm install kb-addon-qdrant kubeblocks/qdrant --namespace kb-system --version 1.0.0
kubectl create namespace demo --dry-run=client -o yaml | kubectl apply -f -
Default ports: 6333 (HTTP REST API), 6334 (gRPC). Recommended replicas: 3, 5, or 7.
apiVersion: apps.kubeblocks.io/v1
kind: Cluster
metadata:
name: qdrant-cluster
namespace: demo
spec:
clusterDef: qdrant
topology: cluster
terminationPolicy: Delete
componentSpecs:
- name: qdrant
serviceVersion: "1.10.0"
replicas: 3
resources:
limits: {cpu: "0.5", memory: "0.5Gi"}
requests: {cpu: "0.5", memory: "0.5Gi"}
volumeClaimTemplates:
- name: data
spec:
accessModes: [ReadWriteOnce]
resources: {requests: {storage: 20Gi}}
Dry-run before apply:
kubectl apply -f cluster.yaml --dry-run=server
If dry-run succeeds:
kubectl apply -f cluster.yaml
kubectl -n demo get cluster qdrant-cluster -w
Success condition: STATUS shows Running. Typical duration: 1–2 minutes. Investigate after 10 min if still Creating.
Check pods:
kubectl -n demo get pods -l app.kubernetes.io/instance=qdrant-cluster
Port 6333 exposes the HTTP REST API. Use port-forward or the headless service:
# Port-forward to a pod
kubectl -n demo port-forward qdrant-cluster-qdrant-0 6333:6333
# Health check
curl http://localhost:6333/health
# List collections
curl http://localhost:6333/collections
Internal service: qdrant-cluster-qdrant-qdrant.demo.svc.cluster.local:6333 (REST), :6334 (gRPC).
KubeBlocks supports full backup via HTTP API snapshot for all collections. See:
https://kubeblocks.io/docs/preview/kubeblocks-for-qdrant/05-backup-restore/02-create-full-backup
Cluster stuck in Creating:
kubectl -n demo describe cluster qdrant-cluster
kubectl -n demo get events --sort-by='.lastTimestamp'
Pod not starting:
kubectl -n demo logs qdrant-cluster-qdrant-0
kubectl -n demo describe pod qdrant-cluster-qdrant-0
Connection refused: Ensure port-forward is running or use the internal service from within the cluster.
| Operation | Skill | External Docs | |---|---|---| | Stop / Start / Restart | cluster-lifecycle | Docs | | Scale CPU / Memory | vertical-scaling | Docs | | Add / Remove replicas | horizontal-scaling | Docs | | Expand storage | volume-expansion | Docs | | Upgrade engine version | minor-version-upgrade | Docs | | Expose externally | expose-service | Docs | | Backup | backup | Docs | | Restore | restore | Docs |
Follow safety-patterns: dry-run before apply, confirm success condition after watch, pre-deletion checklist before delete.
devops
Expand persistent volume storage for KubeBlocks database clusters via OpsRequest. Requires the StorageClass to support volume expansion (allowVolumeExpansion=true). Use when the user needs more disk space, wants to increase storage, expand volumes, or resize PVCs. NOT for changing CPU/memory (see vertical-scaling) or adding more replicas (see horizontal-scaling). Note that volume shrinking is not supported by Kubernetes.
data-ai
Scale CPU and memory resources for KubeBlocks database clusters via OpsRequest (vertical scaling). Supports in-place updates when the feature gate is enabled. Use when the user wants to change, increase, decrease, resize, or adjust CPU or memory resources of a database cluster. NOT for adding/removing replicas or shards (see horizontal-scaling) or expanding disk storage (see volume-expansion).
data-ai
Upgrade the KubeBlocks operator itself via Helm. Covers update operator, upgrade to v1.0, update kubeblocks version, and CRD updates. Use when the user wants to upgrade KubeBlocks, update the operator, or upgrade to a new KubeBlocks release. NOT for upgrading database engine versions (see minor-version-upgrade).
development
Diagnostic guide for KubeBlocks-managed database clusters. Use when the user reports troubleshoot, debug, diagnose, not working, error, failed, stuck, CrashLoopBackOff, cluster exception, or similar problems with their database cluster. This skill guides the agent through diagnostic steps — it does NOT perform actions.