# 在K8S上初始化TiDB 集群并访问

> 作者/来源: UCloud 运营管理员
> 发布时间: 2023-01-11T05:20:00.000Z
> 分类: 其他
> 标签: 数据库, Docker
> 原文链接: http://117.50.162.249:3000/yun/articles/989

---

# 在K8S上初始化TiDB 集群并访问

> 来源: https://www.ucloud.cn/yun/129939.html
> 作者: IT那活儿
> 发布日期: 发布于2023-01-11 13:20

在K8S上初始化TiDB 集群并访问

**一. 初始化TIDB集群**

1.创建secret类型账号

1）执行tidb数据库root密码

     echo -n ‘oracle’ |base64

2）配置tidb-secret.yaml

```
▼▼▼
```

3）应用tidb-secret.yaml并查看

```
▼▼▼
```

可以看到tidb-secret已创建

2.初始化TIDB数据库

1）创建初始化tidb-init.yaml

```
▼▼▼
```

2）下载镜像并上传至内网应用

```
▼▼▼
```

3） 应用yaml并查看

```
▼▼▼
```

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129939/images/129939_000.png)

初始完后,pod状态会变成Completed

**二. 访问TIDB数据库**

访问

## **1) 查看对外暴露端口**

kubectl get svc  -n tidb-cluster

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129939/images/129939_001.png)

**2) 使用mysql客户端进行访问,密码为tidb-secret.yaml创建的密码**

mysql -uroot -p -h10.96.200.242 -P4000

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129939/images/129939_002.png)

可以看到通过初始化创建app库正常存在.至此K8S+TIDB搭建完成

**三. 踩坑点**

**tidb-cluster.yaml默认参数无法完成初始化**

## **现象：**

使用tidb-cluster.yaml中默认使用的tidb参数，初始化时，docker下查看pod报错如下：

```
▼▼▼
```

kubectl查看pod日志，报错如下：

```
▼▼▼
```

而K8S用describe查看的日志，完全不显示报错，一直处于Init:0/1状态：

```
▼▼▼
```

## **解决：**

在tidb-cluster.yaml中，tidb.service设置ClusterIP、Nodeport或者Load Balancer，再重新初始化，则正常。

相关阅读

Centos8下 K8S 安装配置Mysql8 多主MGR

Centos8安装在线及离线K8S集群搭建

Centos8下K8S master节点更换IP

Tidb慢查询定位分析

Tidb日常运维操作

TiDB扩容与缩容

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129939/images/129939_003.png)

END

更多精彩干货分享

点击下方名片关注

IT那活儿

![](https://ucloud-blog.cn-bj.ufileos.com/articles/129939/images/129939_004.png)