你确认一下一下的几个版本号:
TiDB Operator 的版本
TiDB 的版本
K8s 的版本
你确认一下一下的几个版本号:
TiDB Operator 的版本
TiDB 的版本
K8s 的版本
你的报错中有 cannot get cluster: Cluster.core.pingcap.com ‘basic’ not found" 的错误
根据日志信息,PDGroup 控制器在 “db” 命名空间中尝试协调名为 “pd” 的 PDGroup 资源时,无法找到名为 “basic” 的 Cluster 资源。这表明 TiDB Operator 期望找到一个名为 “basic” 的 TiDB 集群定义,但该资源不存在或无法访问。
这个错误通常由以下几种情况导致:
首先,检查 “basic” 集群资源是否存在于 Kubernetes 中:
kubectl get tc -n db basic
# 或检查所有命名空间
kubectl get tc --all-namespaces
如果找不到名为 “basic” 的集群资源,则需要创建它或修正引用。
检查 PDGroup 资源的配置,确认它引用的集群名称是否正确:
kubectl get pdgroup pd -n db -o yaml
在输出中查找 spec.cluster
或类似字段,确认它是否正确引用了 “basic” 集群。如果引用错误,需要修改 PDGroup 资源配置。
根据您的实际情况,选择以下方法之一:
方法 A:创建缺失的集群资源
如果确实需要名为 “basic” 的集群,创建一个新的集群资源:
# 创建基本的 TiDB 集群配置文件 basic.yaml
cat > basic.yaml << EOF
apiVersion: pingcap.com/v1alpha1
kind: Cluster
metadata:
name: basic
namespace: db
spec:
version: v8.5.0
# 添加其他必要配置...
EOF
# 应用配置
kubectl apply -f basic.yaml
方法 B:修改 PDGroup 引用
如果应该引用其他现有集群,修改 PDGroup 配置:
kubectl edit pdgroup pd -n db
在编辑器中找到集群引用部分,将 “basic” 改为正确的集群名称。
确保 TiDB Operator 有足够权限访问集群资源:
# 检查 TiDB Operator 的 ServiceAccount 权限
kubectl describe clusterrole tidb-operator
kubectl describe clusterrolebinding tidb-operator
如果发现权限问题,可能需要更新 RBAC 配置。
确认 TiDB Operator 和 CRD 版本兼容:
# 检查 TiDB Operator 版本
kubectl get deployment -n tidb-admin tidb-controller-manager -o jsonpath='{.spec.template.spec.containers[0].image}'
# 检查 CRD 版本
kubectl get crd | grep pingcap.com
如果版本不兼容,可能需要更新 TiDB Operator 或重新安装匹配的 CRD。
如果上述步骤未解决问题,尝试重启 TiDB Operator:
kubectl rollout restart deployment -n tidb-admin tidb-controller-manager
如果您正在恢复已有的 PD 集群,可能需要检查 PD 集群的状态:
# 检查 PD Pod 状态
kubectl get pods -n db -l app.kubernetes.io/component=pd
# 查看 PD Pod 日志
kubectl logs -n db -l app.kubernetes.io/component=pd
如果 PD 集群出现问题,可能需要使用 pd-recover
工具进行恢复。
为避免类似问题再次发生,建议:
按照官方文档来的,
TiDB Operator 的版本: v2.0.0-beta.0
TiDB 的版本: v8.5.2
`K8s 的版本:1.3.1
也就是 TiDB 开放,你要是在别的论坛这样子写 估计要给你删帖、拉黑了
你照着检查
你要是能把我想问的问题,怎么反映给写这个文档的人,那我非常感谢
TiDB Operator 部署成功了吗?看报错是 TiDB Operator 部署问题。所以现在部署 TiDB 集群报错。可以看一下 https://docs.pingcap.com/zh/tidb-in-kubernetes/v2.0/deploy-tidb-operator/#部署-tidb-operator-crd 操作,另外别用 v2.0.0-beta.0 版本,这个版本是 beta,不是 GA。
TiDB Operator 开源社区在这里哈,如果想要反馈问题,可以直接在这里找到 TiDB Operator 的 Group 反馈问题。https://github.com/pingcap/tidb-operator ,这里是 TiDB 的互助问答社区,大家可以开诚布公的解决问题,反馈相关问题。如果咱们实在不好解决问题,欢迎联系 商业化团队 协助解决问题。
好的,谢谢
用1.6的版本
2.0 还是 beta 版
感觉这个哥们来踢馆的。
在 k8s 上装 tidb 会比直接用 tiup 装困难一点,另外 tidb 在高版本也有资源管控的功能,能满足你按需求分资源。
TiDB Operator v1.6 适合上生产:
https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/tidb-operator-overview/
所以尽量用 1.6
如果你不怕困难,想尝鲜一下 2.0 那么你要了解清楚
随着 TiDB 和 Kubernetes 生态的快速发展,TiDB Operator 发布了与 v1 不兼容的 v2 版本。关于 v2 与 v1 的详细差异,请参考 TiDB Operator v2 与 v1 版本对比。
TiDB Operator v2 对 TiDB Operator v1 进行了大幅重构:
TidbCluster
CRD最初 TiDB 集群只有 3 个核心组件:PD、TiKV、TiDB。为了尽可能简化部署,降低用户心智负担,最初的设计将所有 TiDB 集群的组件定义在了同一个 CRD TidbCluster
中。然而,随着 TiDB 的发展,这种设计迎来了一些挑战。
TidbCluster
CRD 中TidbCluster
CRD 中TidbCluster
CR 实现异构集群/scale
API,无法与 Kubernetes 的 HorizontalPodAutoscaler (HPA) 生态集成为解决上述问题,TiDB Operator v2 将 TidbCluster
CRD 按组件拆分为多个独立的 CRD。
由于 TiDB 集群本身的复杂性,Kubernetes 原生的 Deployment 和 StatefulSet 控制器无法完美适配 TiDB 的部署和运维需求。TiDB Operator v1 通过 StatefulSet 管理所有 TiDB 组件,然而 StatefulSet 的一些限制无法最大化 Kubernetes 能够提供的能力,比如:
VolumeClaimTemplate
的修改,无法原生支持扩容TiDB Operator v2 移除了对 StatefulSet 的依赖,并引入了以下 CRD:
Cluster
ComponentGroup
Instance
这三层 CRD 可以直接管理 Pod。TiDB Operator v2 通过 ComponentGroup
CRD 来管理具有共同特性的节点,降低复杂度,通过 Instance
CRD 来方便对单个有状态实例进行管理,提供实例级别的运维操作,保证了灵活性。
这带来了如下好处:
kubectl delete ${pod}
优雅重启 Pod,也能通过 kubectl delete ${instance}
重建特定的 TiKV 节点每个 Kubernetes 的新版本都可能会引入一些用户需要的新字段,然而这些字段可能 TiDB Operator 并不关心。TiDB Operator v1 的开发过程中花了大量的时间在支持快速发展的 Kubernetes 的新功能,包括手动在 TidbCluster
CRD 中添加新字段,并将新字段层层下发。TiDB Operator v2 引入了 Overlay 机制,通过统一的方式支持所有 Kubernetes 资源(尤其是 Pod)上的新字段,详情见 Overlay。
TiDB Operator v2 通过合法性检查规则 (Validation Rule) 和验证准入策略 (Validating Admission Policy) 增强配置校验能力,提高了系统的易用性与健壮性。
/status
和 /scale
子资源TiDB Operator v2 支持 CRD 子资源,可与 Kubernetes 提供的 HPA 集成,实现自动化扩缩容。
tidb scheduler
组件并支持 Evenly Spread PolicyTiDB Operator v2 支持配置 Evenly Spread Policy 来将组件按需均匀分布到不同的 Region 和 Zone 上,并移除了 tidb scheduler
组件。
Binlog
(Pump + Drainer)Binlog
组件已经废弃,详见 TiDB Binlog 简介。
TiDB Operator 不再提供对 Dumpling 和 TiDB Lightning 的直接支持,建议使用 Kubernetes 原生 Job 的方式运行。
TidbInitializer
TiDB Operator v2 不再支持 TidbInitializer
CRD,你可以使用 BootstrapSQL 的方式运行初始化的 SQL。
TidbMonitor
TiDB Operator v2 不再支持 TidbMonitor
CRD。由于用户的监控系统通常比较复杂并且方案众多,TidbMonitor
往往无法很好地集成到生产级别的监控系统中。TiDB 通过更灵活的方式直接为你提供集成常用监控系统的方案,不再通过 CRD 的方式运行 Prometheus + Grafana + Alert-Manager 的组合。详情请参阅 TiDB 集群的监控与告警。
TidbNgMonitoring
暂不支持 TidbNgMonitoring
。
TidbDashboard
暂不支持通过 CRD 部署 TidbDashboard
。你可以使用内置的 Dashboard 或者通过 Deployment 自行部署。
考虑到跨 Namespace 可能带来的安全性问题以及尚不明确的用户场景,暂不支持。
考虑到跨 Kubernetes 集群可能带来的安全性问题以及尚不明确的用户场景,暂不支持。
基于 EBS 卷快照的备份存在以下难以解决的问题:
随着持续的优化,TiDB BR 的性能提升显著,基于 EBS 卷快照的备份恢复不再是必需的。因此,TiDB Operator v2 不再支持该功能。
TiDB Operator 2.0.0-beta.0 特性介绍: https://docs.pingcap.com/zh/tidb-in-kubernetes/v2.0/release-2.0.0-beta.0/
此版本为 beta 版本,建议在生产环境中部署前进行充分测试 。
应该用那个版本
尽量用 1.6