原生 K8s 环境下 TiDB Operator 实战
作者: jiashiwen 原文来源:https://tidb.net/blog/00e04215
凑个热闹,k8s+tidb operator,便于更好的了解结构和操作细节。 k8s 和 tidb 都是目前开源社区中活跃的开源产品,tidb-operator 项目是一个在 k8s 上编排管理 tidb 集群的项目。本文详细记录了部署 k8s 及 install tidb-operator 的详细实施过程,希望能对刚入坑的同学有所帮助
环境
ubuntu 16.04
k8s 1.14.1
kubespray 安装 k8s
配置免密登录
vi /tmp/autocopy.exp
配置 kubespray
inventory/mycluster/inventory.ini
节点所需镜像的文件
由于某些镜像国内无法访问需要现将镜像通过代理下载到本地然后上传到本地镜像仓库或 dockerhub,同时修改配置文件,个别组件存放位置 https://storage.googleapis.com,需要新建 nginx 服务器分发文件
建立 nginx 服务器
安装 docker 及 docker-compose
新建 nginx docker-compose.yml
~/distribution/docker-compose.yml
创建文件目录及 nginx 配置文件目录
~/distribution/conf.d/open_distribute.conf
启动
下载并上传所需文件 具体版本号参考 roles/download/defaults/main.yml 文件中 kubeadm_version、kube_version、image_arch 参数
需要下载并上传到私有仓库的镜像
用于下载上传镜像的脚本
修改文件 inventory/mycluster/group_vars/k8s-cluster/k8s-cluster.yml,修改 k8s 镜像仓库
修改 roles/download/defaults/main.yml
执行安装
安装命令
重置命令
验证 k8s 集群
安装 kubectl
ubuntu
centos
本地浏览器打开 https://storage.googleapis.com/kubernetes-release/release/stable.txt 得到最新版本为 v1.14.1
用上一步得到的最新版本号 v1.7.1 替换下载地址中的 $(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt) 得到真正的下载地址 https:// storage.googleapis.com/kubernetes-release/release/v1.14.1/bin/linux/amd64/kubectl
上传下载好的 kubectl
修改属性
将 master 节点上的~/.kube/config 文件复制到你需要访问集群的客户端上即可
执行命令验证集群
tidb-operaor 部署
安装 helm
https://blog.csdn.net/bbwangj/article/details/81087911
安装 helm
查看 helm 版本
初始化
为 k8s 提供 local volumes
参考文档 https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner/blob/master/docs/operations.md tidb-operator 启动会为 pd 和 tikv 绑定 pv,需要在 discovery directory 下创建多个目录
格式化并挂载磁盘
/etc/fstab 持久化 mount
创建多个目录并 mount 到 discovery directory
/etc/fstab 持久化 mount
为 tidb-operator 创建 local-volume-provisioner
Install TiDB Operator
TiDB Operator 使用 CRD 扩展 Kubernetes,因此要使用 TiDB Operator,首先应该创建 TidbCluster 自定义资源类型。
安装 tidb-operator
部署 tidb
验证
安装 mysql 客户端
参考文档 https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html
centos 安装
ubuntu 安装
映射 tidb 端口
查看 tidb serveice
映射 tidb 端口
首次登录 mysql
修改 tidb 密码
趟坑小记
k8s 国内安装 k8s 镜像多在 gcr.io 国内访问不到,基本做法是把镜像导入 dockerhub 或者私有镜像,这一点在 k8s 部署章节有详细过程就不累述了。
tidb-operator 本地存储配置 operator 在启动集群时 pd 和 tikv 需要绑定本地存储如果挂载点不足会导致 pod 启动过程中找不到可已 bond 的 pv 始终处于 pending 或 createing 状态,详细配请参阅 https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner/blob/master/docs/operations.md 中“Sharing a disk filesystem by multiple filesystem PVs”一节,同一块磁盘绑定多个挂载目录,为 operator 提供足够的 bond
mysql 客户端版本问题 目前 tidb 只支持 mysql5.7 版本客户端 8.0 会报 ERROR 1105 (HY000): Unknown charset id 255
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/f6ce74cd265ac100c3eb2991a】。文章转载请联系作者。
评论