通过 k8s 安装,版本是v4.0.1,用同样的方式 访问 grafana 和 prometheus 都是成功的,唯独 dashboard 是失败的
请问,可以尝试使用 ip 访问吗? 是否能够成功,多谢。
也不行哦
- 请展示下使用host访问时的报错,多谢。
https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.1/access-dashboard
- operator 时 1.1.1 吗?
用 host 访问
我安装是用 yaml 进行的安装,其实我也比较困惑(到现在我还没用到 operator ),但我在我的镜像中,发现我下载了 pingcap/tidb-operator:v1.1.0-rc.1
1,需要将 TiDB Operator 到 v1.1.1 版本,并更新 CRD 文件,升级文档可以参考这里:https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.1/upgrade-tidb-operator
2,然后将 Ingress 对象的端口由 10261 修改为 10262。
安装 TiDB Operator 请参考文档:https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.1/deploy-tidb-operator
部署多套 TiDB 集群:https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.1/deploy-on-general-kubernetes
-
我是通过 tidb-cluster.yaml 进行的部署,我看到 生成的 pod (basic-discovery-xxx)中用到了镜像 pingcap/tidb-operator:v1.1.0-rc.1,我如果 现在想 将此 pod 升级为v1.1.1,我该在 tidb-cluster.yaml 中如何设置?还是说我换成 operator 的部署方式(因为我之前看视频,其中推荐用 tidb-cluster.yaml 进行部署)。
-
端口这个,我看官网上是写着 10262,但是我的 service 中用的是 10261 这个端口(见问题中最后一幅截图中红框圈出来的部分)
通过 Ingress 访问 Dashboard 这个功能需要 TiDB Operator 升级到 v1.1.1 才可以使用。
TiDB Operator 是一个管理程序,安装文档前面已经提及过了:https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.1/deploy-tidb-operator。
有了这个管理程序,才可以创建 TiDB 集群,可以通过新建 TidbCluster 对象来创建一套或者多套 TiDB 集群,文档参考:https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.1/deploy-on-general-kubernetes。
可以通过这个文档了解下 TiDB Operator 的架构:https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.1/architecture。
1,确认下你的 TiDB Operator 的版本,如果不是 v1.1.1,需要先升级 TiDB Operator 这个管理程序的版本到 v1.1.1,basic-discovery-xxx 的版本是跟着 TiDB Operator 的版本走的。
2,升级到 v1.1.1 之后,就有 10262 这个端口了。
这里说的 v1.1.1 是指 TiDB Operator 这个管理程序的版本。
我将 tidb-operator 升级到 v1.1.1 了(crd 也升级了), basic-discovery 中的镜像 自动迁移到 v.1.1.1 了,后来发现 整个 tidb 都连不上(虽然 相关pod 都 处于 running)。
刚我就 把整个 tidb 卸载重装,但发现 tidb-pd 在不断的重启,导致 tikv 和 tidb 都无法起来。
版本信息:
tidb-operator:v1.1.1 tidb-cluster:v4.0.1
pod 状态:
pd 的 描述信息:
昨天那个不断重启的问题,后来参照了 这个主题(https://asktug.com/t/topic/1473/7),不过我后来把 tidb 删了,重新装,结果发现 basic-pd-0 起来了,basic-tikv-0 也起来了,就是 basic-tidb-0 没起来(过了很久也是一样)
tidb-cluster.yaml 和之前的都一样,只是 operator 迁移到了 v1.1.1
麻烦帮忙提供以下信息:
1,查看下 tidb-controller-manager-xxx 这个 Pod 的日志,看看有没有报错信息。
2,看看 basic-pd-0 和 basic-tikv-0 这两个 Pod 日志,看看有没有报错信息阻碍了 tidb Pod 的创建。
3,看看用来创建 tidb 的 StatefulSet 是否存在?
kubectl get sts -n tidb-demo
好多错
-
tidb-controller-manager-xxx 日志如下
E0702 08:24:05.210707 1 tidb_monitor_controller.go:120] TidbMonitor: default/basic, sync failed, err: get tm[default/basic]'s target tc[default/basic] failed, err: tidbclusters.pingcap.com “basic” not found
E0702 08:24:05.244403 1 tidb_initializer_controller.go:134] TiDBInitializer: tidb-demo/tidb-demo-init, sync failed, err: tidbcluster.pingcap.com “tidb-demo” not found, requeuing
E0702 08:24:05.467460 1 tidb_cluster_controller.go:298] TidbCluster: tidb-demo/basic, sync failed Error response 500 URL http://basic-pd.tidb-demo:2379/pd/api/v1/stores,body response: “TiKV cluster not bootstrapped, please start TiKV first”
, requeuing -
basic-pd-0 日志如下:
-
basic-tikv-0 日志如下:
-
kubectl get sts -n tidb-demo 是存在的
TidbMonitor 对象里面的 namespace 要跟 TidbCluster 保持一致,从日志看,TidbMonitor 的 namespace 是 default,而 TidbCluster 是在 tidb-demo namespace 下。
这个需要修改成同一个 namespace。
从日志看 TidbMonitor 的 namespace 是 default 呢。
但是从下面这张图看这个 TidbMonitor 的 namespace 又是 tidb-demo。
看上去不一致,你能提供下这个 TiDB 集群的 TidbCluster 以及 TidbMonitor 的 yaml 文件吗?
TidbCluster
apiVersion: pingcap.com/v1alpha1
kind: TidbCluster
metadata:
name: basic
spec:
version: v4.0.1 # v3.0.13
timezone: UTC
configUpdateStrategy: RollingUpdate # 开启 滚动更新
pvReclaimPolicy: Delete
discovery:
limits:
cpu: 250m
memory: 150Mi
requests:
cpu: 80m
memory: 50Mi
pd:
enableDashboardInternalProxy: true # 开启 Dashboard 快捷访问
baseImage: pingcap/pd
replicas: 1
# if storageClassName is not set, the default Storage Class of the Kubernetes cluster will be used
storageClassName: local-storage
requests:
storage: “1Gi”
config: {}
tikv:
baseImage: pingcap/tikv
replicas: 1
# if storageClassName is not set, the default Storage Class of the Kubernetes cluster will be used
storageClassName: local-storage
requests:
storage: “1Gi”
config: {}
tidb:
baseImage: pingcap/tidb
replicas: 1
service:
# type: ClusterIP
type: NodePort
externalTrafficPolicy: Cluster
config: {}
TidbMonitor
apiVersion: pingcap.com/v1alpha1
kind: TidbMonitor
metadata:
name: basic
spec:
clusters:
- name: basic
prometheus:
baseImage: prom/prometheus
version: v2.18.1
grafana:
baseImage: grafana/grafana
version: 7.0.3
initializer:
baseImage: pingcap/tidb-monitor-initializer
version: v3.0.13
reloader:
baseImage: pingcap/tidb-monitor-reloader
version: v1.0.1
imagePullPolicy: IfNotPresent
我们查看下问题,会尽快反馈,多谢
你创建的这个 TiDB 集群和监控都是在 default namespace 下的。所以你应该这样查询 Pod:
kubectl get po -n default
你之前可能在 tidb-demo namespace 也创建过 TiDB 集群,但是却没有在那个 namespace 下创建过 TidbMonitor 对象是吧?用以下命令分别查看下呢:
kubectl get tc,tidbmonitor -n default
kubectl get tc,tidbmonotor -n tidb-demo
在 K8s 系统里,几乎所有对象都是有 namespace 的,查询对象的时候注意所在的 namespace 就可以了。
kubectl get tc,tidbmonitor -n default
的确这个下面是有数据的,后来删除后,重新把 整个环境删了,重新部署,依然起不来,log日志如下:
kubectl logs tidb-controller-manager-6f9ffd77f7-sqh27 -n tidb-admin
E0702 05:47:35.091443 1 tidb_initializer_controller.go:134] TiDBInitializer: tidb-demo/tidb-demo-init, sync failed, err: tidbcluster.pingcap.com “tidb-demo” not found, requeuing
E0702 05:47:35.280055 1 tidb_cluster_controller.go:298] TidbCluster: tidb-demo/basic, sync failed Error response 500 URL http://basic-pd.tidb-demo:2379/pd/api/v1/stores,body response: “TiKV cluster not bootstrapped, please start TiKV first”, requeuing
E0702 05:48:05.052313 1 tidb_monitor_controller.go:120] TidbMonitor: default/basic, sync failed, err: get tm[default/basic]'s target tc[default/basic] failed, err: tidbclusters.pingcap.com “basic” not found
kubectl logs basic-pd-0 -n tidb-demo