87
社区成员




本文介绍了 Kubernetes 上 TiDB 常见部署错误以及处理办法。
创建集群后,如果 Pod 没有创建,则可以通过以下方式进行诊断:
Copy
kubectl get tidbclusters -n ${namespace}
kubectl describe tidbclusters -n ${namespace} ${cluster_name}
kubectl get statefulsets -n ${namespace}
kubectl describe statefulsets -n ${namespace} ${cluster_name}-pd
创建备份恢复任务后,如果 Pod 没有创建,则可以通过以下方式进行诊断:
Copy
kubectl get backups -n ${namespace}
kubectl get jobs -n ${namespace}
kubectl describe backups -n ${namespace} ${backup_name}
kubectl describe backupschedules -n ${namespace} ${backupschedule_name}
kubectl describe jobs -n ${namespace} ${backupjob_name}
kubectl describe restores -n ${namespace} ${restore_name}
Pod 处于 Pending 状态,通常都是资源不满足导致的,比如:
此时,可以通过 kubectl describe pod
命令查看 Pending 的具体原因:
Copy
kubectl describe po -n ${namespace} ${pod_name}
如果是 CPU 或内存资源不足,可以通过降低对应组件的 CPU 或内存资源申请,使其能够得到调度,或是增加新的 Kubernetes 节点。
如果是 PVC 的 StorageClass 找不到,可采取以下步骤:
通过以下命令获取集群中可用的 StorageClass:
Copy
kubectl get storageclass
将 storageClassName
修改为集群中可用的 StorageClass 名字。
使用下述方式更新配置文件:
kubectl edit tc ${cluster_name} -n ${namespace}
进行集群更新。kubectl delete bk ${backup_name} -n ${namespace}
删掉老的备份/恢复任务,再运行 kubectl apply -f backup.yaml
重新创建新的备份/恢复任务。将 Statefulset 删除,并且将对应的 PVC 也都删除。
Copy
kubectl delete pvc -n ${namespace} ${pvc_name}
kubectl delete sts -n ${namespace} ${statefulset_name}
·····
关于正方面的内容,如果想了解更多的话,我整理了一下,大家可以看看这个:https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/deploy-failures