使用 KubeBlocks 在 Kubernetes 上供应并管理生产级数据库。当用户需要 MySQL、PostgreSQL、Redis 等数据库时使用此技能。
KubeBlocks — Kubernetes, Made simple.是一项面向实际任务的技能,主要用于When To Use This Skill. 使用此技能时: 1. 用户需要数据库,并且拥有(或愿意建立)Kubernetes环境. 用户询问 t。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
在以下情况下使用本技能:
不建议使用本技能的情形:若用户仅需一个已有托管数据库服务(例如 AWS RDS、Google Cloud SQL)的连接字符串,或希望绕过 Kubernetes、直接通过 Docker Compose 运行数据库,则本技能不适用。
若用户尚未拥有 Kubernetes 集群但有此需求,本技能集包含为开发与测试目的创建本地 K8s 集群的能力。
KubeBlocks 是一个 Kubernetes Operator,可在任意 K8s 集群上统一管理 30+ 种数据库引擎。它提供一套标准化 API,覆盖关系型、NoSQL、流式、向量及图数据库的全生命周期管理——从初始配置、扩缩容,到备份恢复与可观测性。
执行任何操作前,请先验证当前环境状态:
# 检查 KubeBlocks 是否已安装 kubectl -n kb-system get pods # 列出所有命名空间下的数据库集群 kubectl get cluster -A # 查看 KubeBlocks 版本 helm list -n kb-system | grep kubeblocks
若 KubeBlocks 尚未安装,请先使用 install-kubeblocks 技能;若完全不存在 Kubernetes 集群,则应首先执行 create-local-k8s-cluster。
请根据用户意图选择对应技能。每个技能均为自包含指南,含 YAML 模板、分步工作流及排障说明。
| 用户意图 | 技能 |
|---|---|
| 创建本地 K8s 测试集群 | create-local-k8s-cluster |
| 安装 KubeBlocks Operator | install-kubeblocks |
| 安装/管理数据库引擎插件(Addons) | manage-addons |
| 用户意图 | 技能 |
|---|---|
| 创建 MySQL 集群 | addon-mysql |
| 创建 PostgreSQL 集群 | addon-postgresql |
| 创建 Redis 集群 | addon-redis |
| 创建 MongoDB 集群 | addon-mongodb |
| 创建 Kafka 集群 | addon-kafka |
| 创建 Elasticsearch 集群 | addon-elasticsearch |
| 创建 Milvus(向量数据库)集群 | addon-milvus |
| 创建 Qdrant(向量数据库)集群 | addon-qdrant |
| 创建 RabbitMQ 集群 | addon-rabbitmq |
| 创建其他任意数据库(通用方式) | create-cluster |
| 删除数据库集群 | delete-cluster |
| 用户意图 | 技能 |
|---|---|
| 停止 / 启动 / 重启集群 | cluster-lifecycle |
| 纵向扩容 CPU / 内存 | vertical-scaling |
| 增减副本数或分片数 | horizontal-scaling |
| 扩展存储卷容量 | volume-expansion |
| 修改数据库参数 | reconfigure-parameters |
| 主从切换(Primary / Secondary Switchover) | switchover |
| 升级数据库引擎版本 | minor-version-upgrade |
| 重建失败的副本 | rebuild-replica |
| 升级 KubeBlocks Operator | upgrade-kubeblocks |
| 用户意图 | 技能 |
|---|---|
| 备份集群数据 | backup |
| 从备份恢复 / 时间点恢复(PITR) | restore |
| 用户意图 | 技能 |
|---|---|
| 管理数据库密码 / 账号 | manage-accounts |
| 配置 TLS / mTLS 加密 | configure-tls |
| 对外暴露服务(LoadBalancer / NodePort) | expose-service |
| 用户意图 | 技能 |
|---|---|
| 配置监控(Prometheus / Grafana) | setup-monitoring |
| 用户意图 | 技能 |
|---|---|
| 集群异常、报错、失败、卡住、CrashLoopBackOff | troubleshoot |
当用户意图不够明确时,请参考此流程图进行判断:
用户需要一个数据库
├─ KubeBlocks 是否已安装?
│ ├─ 否 → 用户是否有 K8s 集群?
│ │ ├─ 否 → create-local-k8s-cluster → install-kubeblocks
│ │ └─ 是 → install-kubeblocks
│ └─ 是 → 继续向下
│
├─ 创建数据库
│ ├─ 对应引擎插件是否已安装?
│ │ ├─ 否 → manage-addons → 再创建集群
│ │ └─ 是 → 使用哪种引擎?
│ │ ├─ MySQL/PG/Redis/MongoDB/Kafka/ES/Milvus/Qdrant/RabbitMQ → addon-{engine}
│ │ └─ 其他 → create-cluster(通用方式)
│ └─ 尚未确定引擎?→ 根据使用场景推荐:
│ ├─ 关系型 / SQL 应用 → addon-postgresql 或 addon-mysql
│ ├─ 缓存 / 会话存储 → addon-redis
│ ├─ 文档存储 → addon-mongodb
│ ├─ 事件流处理 → addon-kafka
│ ├─ 全文检索 / 日志分析 → addon-elasticsearch
│ ├─ 向量相似性搜索 / RAG → addon-milvus 或 addon-qdrant
│ └─ 消息队列 → addon-rabbitmq 或 addon-kafka
│
├─ 运维已有数据库
│ ├─ 调整 CPU / 内存 → vertical-scaling
│ ├─ 增减副本 → horizontal-scaling
│ ├─ 扩展磁盘容量 → volume-expansion
│ ├─ 修改数据库配置 → reconfigure-parameters
│ ├─ 主节点切换 → switchover
│ ├─ 升级数据库版本 → minor-version-upgrade
│ ├─ 重建失败副本 → rebuild-replica
│ ├─ 停止 / 启动 / 重启 → cluster-lifecycle
│ └─ 永久删除集群 → delete-cluster
│
├─ 数据保护
│ ├─ 备份 → backup
│ └─ 恢复 / 时间点恢复(PITR) → restore
│
├─ 数据库安全加固
│ ├─ 管理账号密码 → manage-accounts
│ ├─ 启用 TLS/SSL → configure-tls
│ └─ 对外暴露服务 → expose-service
│
├─ 监控配置 → setup-monitoring
├─ 升级 KubeBlocks 自身 → upgrade-kubeblocks
└─ 出现异常 → troubleshoot
当用户需要数据库但尚未选定具体引擎时,可根据其使用场景推荐如下:
| 使用场景 | 推荐引擎 | 原因 |
|---|---|---|
| Web 应用后端、结构化关系数据、SQL 查询 | PostgreSQL | 功能最全面,生态成熟稳定 |
| 遗留系统兼容、需 MySQL 协议支持 | MySQL | 可无缝替代 MySQL 依赖型应用 |
| 缓存、会话存储、速率限制 | Redis | 亚毫秒级延迟,API 简洁高效 |
| 灵活 Schema、文档型数据存储 | MongoDB | 无 Schema 约束,天然支持水平扩展 |
| 事件流处理、日志管道 | Kafka | 高吞吐、持久化、有序消息流 |
| 全文检索、日志分析 | Elasticsearch | 倒排索引 + 强大的查询 DSL |
| AI 向量嵌入、相似性搜索、RAG | Milvus 或 Qdrant | 专为向量检索优化的索引架构 |
| 任务队列、发布/订阅消息系统 | RabbitMQ | 路由策略灵活,支持多种协议 |
| 用户表述 | 对应技能 |
|---|---|
| “scale up”、“更多 CPU”、“更多内存”、“调整规格” | vertical-scaling |
| “增加副本”、“更多节点”、“scale out”、“添加分片” | horizontal-scaling |
| “更多磁盘”、“更多存储”、“扩容卷” | volume-expansion |
| 用户表述 | 对应技能 |
|---|---|
| “delete”、“remove”、“destroy”、“drop”(永久性操作) | delete-cluster |
| “stop”、“pause”、“shut down”(临时性操作,保留数据) | cluster-lifecycle |
| 用户表述 | 对应技能 |
|---|---|
| “升级 MySQL/PG 版本”、“打数据库补丁” | minor-version-upgrade |
| “升级 KubeBlocks”、“更新 Operator” | upgrade-kubeblocks |
在执行任何影响集群的操作前,请查阅 safety-patterns 参考指南。关键规则如下:
kubectl apply 操作前,务必先运行 kubectl apply --dry-run=server。terminationPolicy 更改等操作,必须获得用户明确确认;执行前应先列出相关备份与受影响资源。kubectl get secret ... -o jsonpath 类命令会暴露数据库密码。仅在用户明确请求凭证时才执行,并须提前警示输出含敏感信息。kubectl exec:进入数据库 Pod(kubectl exec -it)将获得对生产数据的 Shell 访问权限,执行前必须获得用户确认。terminationPolicy: DoNotTerminate 的集群应格外审慎。在执行高风险操作(如升级、主从切换、参数重配)前,强烈建议先完成备份。kubectl describe cluster-n kubectl get opsrequest -n kubectl get component -n kubectl logs -n -c kubectl -n kb-system logs -l app.kubernetes.io/name=kubeblocks --tail=100
| 资源 | URL |
|---|---|
| 简介 | https://kubeblocks.io/docs/preview/user_docs/overview/introduction |
| 支持的插件(Addons)列表 | https://kubeblocks.io/docs/preview/user_docs/overview/supported-addons |
| 完整 LLM 文档索引 | https://kubeblocks.io/llms-full.txt |
| GitHub 仓库 | https://github.com/apecloud/kubeblocks |
| 发布版本 | https://github.com/apecloud/kubeblocks/releases |
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章