前言
最近开始关注重新学习k8s,主要还是结合数据库做实践。本文的目标是将tidb数据库部署在k8s。(仅满足测试环境学习,生产部署需请参考k8s和tidb官方文档。)
基础环境:
第一部分 用kind部署k8s
1 kind是什么?
kind is a tool for running local Kubernetes clusters using Docker container “nodes”. kind was primarily designed for testing Kubernetes itself, but may be used for local development or CI.
Kind 是一种用于使用 Docker 容器作为“节点”运行本地 Kubernetes 集群的工具。Kind 主要用于测试 Kubernetes 本身,但也可用于本地开发或 CI。
简答来说就是它会起一个docker容器模拟k8s,这个模拟环境我们可以当k8s测试集群来用。
kind安装
# 下载对应平台kind 二进制文件
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.24.0/kind-linux-amd64
# 添加执行权限
chmod +x kind
# 创建集群
./kind create cluster --name dbtest
# 检查
kubectl cluster-info
由上图可知,k8s测试环境搭建完成。
(PS,可能搭建过程中拉取镜像比较慢,大家尽量替换国内的镜像源,速度相对快一些。)
安装helm
snap install helm --claasic
第二部分 部署TiDB数据库
#1 克隆tidb-operator项目到本地
git clone https://github.com/pingcap/tidb-operator.git (主要想用crd.yaml和tidb-cluster.yaml文件)
#2 切换到manifests目录
cd /data1/tidb-operator/manifests
#3 安装crd (不加server-side会报错 见ps1)
kubectl apply -f crd.yaml --server-side
#4 安装 TiDB Operator(提前安装helm)
helm repo add pingcap https://charts.pingcap.org/
#5 创建tidb-admin namespace
kubectl create namespace tidb-admin
#6 用阿里镜像源安装tidb-operator
helm install --namespace tidb-admin tidb-operator pingcap/tidb-operator --version v1.6.0 \
--set operatorImage=registry.cn-beijing.aliyuncs.com/tidb/tidb-operator:v1.6.0 \
--set tidbBackupManagerImage=registry.cn-beijing.aliyuncs.com/tidb/tidb-backup-manager:v1.6.0 \
--set scheduler.kubeSchedulerImageName=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler
#7 创建tidb-cluster namespace
kubectl create namespace tidb-cluster
#8 创建tidb集群 (测试环境没有装dashboard和monitor,需要安装的话apply配置文件即可,镜像拉取比较慢)
cd /data1/tidb-operator/examples/basic-cn/
kubectl apply -f tidb-cluster.yaml -n tidb-cluster
#9 端口转发
kubectl port-forward -n tidb-cluster svc/basic-tidb 14000:4000 > pf14000.out &
#10 登录验证
mysql --comments -h 127.0.0.1 -P 14000 -u root
踩坑点:
1、ps1 不加server-side报错信息
2、tidb-cluster.yaml文件中alpine基础镜像容易拉取失败,大家尽量改到能拉取的镜像。
参考文档:
1、https://kind.sigs.k8s.io/
2 https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/get-started
关注公众号:DBA札记,一起交流数据库与云原生技术。欢迎觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!谢谢大家。