参考文档:
https://www.cnblogs.com/hsyw/p/16794825.html官方文档:https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/get-started#%E7%AC%AC-2-%E6%AD%A5%E9%83%A8%E7%BD%B2-tidb-operator
安装crd资源:(本文档以最新的1.6.0为例)
Code Block |
---|
kubectl create -f https://raw.githubusercontent.com/pingcap/tidb-operator/v1.6.0/manifests/crd.yaml
##或者我的地址:
https://zhengyu1992.cn/file/deploy/db/tidb/1.tidb-crd.yaml |
添加helm仓库,需要提前安装helm
Code Block |
---|
helm repo add pingcap https://charts.pingcap.org |
自定义安装operator
查看当前helm仓库中tidb的版本
Code Block |
---|
helm search repo -l tidb-operator |
推荐安装最新版本,例如:v1.6.0
创建tidb命名空间
Code Block |
---|
kubectl create namespace tidb |
将helm安装文件模板化到本地yaml
Code Block |
---|
helm template tidb-operator pingcap/tidb-operator \
--version 1.6.0 \
--namespace tidb > tidb-operator.yaml |
注意事项:
1.如果k8s集群大于1.9.0就不需要额外部署tidb-scheduler,在部署 TiDB Operator 过程中,可以通过在 values.yaml
文件中配置 scheduler.create: false
不部署 tidb-scheduler
2.TiDB Operator 默认会管理 Kubernetes 集群中的所有 TiDB 集群,如仅需其管理特定 namespace 下的集群,则可在 values.yaml
中设置 clusterScoped: false
3.调整副本数和资源限制,如下图
4.镜像拉取问题,下面三个镜像可以提前拉取后tag为其它名称,并修改values.yaml文件中的镜像地址
Code Block |
---|
pingcap/tidb-operator:v1.6.0
pingcap/tidb-backup-manager:v1.6.0
pingcap/advanced-statefulset:v0.4.0 |
如下操作实例,利用本地harbor
Code Block |
---|
docker pull pingcap/tidb-operator:v1.6.0
docker pull pingcap/tidb-backup-manager:v1.6.0
docker pull pingcap/advanced-statefulset:v0.4.0
docker tag pingcap/tidb-operator:v1.6.0 harbor.uenpay.com/base/tidb-operator:v1.6.0
docker tag pingcap/tidb-backup-manager:v1.6.0 harbor.uenpay.com/base/tidb-backup-manager:v1.6.0
docker tag pingcap/advanced-statefulset:v0.4.0 harbor.uenpay.com/base/advanced-statefulset:v0.4.0
docker push harbor.uenpay.com/base/tidb-operator:v1.6.0
docker push harbor.uenpay.com/base/tidb-backup-manager:v1.6.0
docker push harbor.uenpay.com/base/advanced-statefulset:v0.4.0 |
将tidb-operator.yaml中的镜像地址改成本地的镜像地址后安装tidb-operator
Code Block |
---|
sed -i 's#pingcap/#harbor.uenpay.com/base/#g' tidb-operator.yaml
kubectl apply -f tidb-operator.yaml |
查看operator启动情况
Code Block |
---|
kubectl -n tidb get pods -l app.kubernetes.io/instance=tidb-operator |
后续升级只需要在模板化yaml文件时候修改版本就行了
假如升级到1.6.1
Code Block |
---|
helm template tidb-operator pingcap/tidb-operator \
--version 1.6.1 \
--namespace tidb > tidb-operator.yaml
kubectl apply -f tidb-operator.yaml |