Technical note
KubeSphere离线部署
参考
https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.5/prerequisites
镜像列表
alpine:3.16.0
bitnami/kubectl:latest
busybox:1.26.2
grafana/grafana:6.0.1
grafana/grafana:7.5.7
k8s.gcr.io/kube-scheduler:v1.24.13
pingcap/advanced-statefulset:v0.3.3
pingcap/advanced-statefulset:v0.4.0
pingcap/ng-monitoring:v6.5.0
pingcap/pd:v6.5.0
pingcap/ticdc:v6.5.0
pingcap/tidb-backup-manager:v1.5.0-beta.1
pingcap/tidb-binlog:v6.5.0
pingcap/tidb-dashboard:v6.5.0
pingcap/tidb-monitor-initializer:v6.5.0
pingcap/tidb-monitor-reloader:v1.0.1
pingcap/tidb-operator:v1.5.0-beta.1
pingcap/tidb:v6.5.0
pingcap/tiflash:v6.5.0
pingcap/tikv:v6.5.0
prom/prometheus:v2.18.1
quay.io/prometheus-operator/prometheus-config-reloader:v0.49.0
tnir/mysqlclient:latest
注意手工处理一下kube-scheduler镜像,将其移动到默认库中。并同时修改TidbOperator的values.yaml:
nerdctl tag harbor.dubhe:30002/k8s.gcr.io/kube-scheduler:v1.24.13 harbor.dubhe:30002/library/kube-scheduler:v1.24.13
nerdctl push harbor.dubhe:30002/library/kube-scheduler:v1.24.13
使用Helm安装tidb-operator
wget http://charts.pingcap.org/tidb-operator-v1.5.0-beta.1.tgz # 下载HelmRepo
tar -zxvf tidb-operator-v1.5.0-beta.1.tgz
helm install tidb-operator ./tidb-operator --namespace=tidb-admin --create-namespace
部署
yaml示例:
https://github.com/pingcap/tidb-operator/blob/master/examples/advanced/tidb-cluster.yaml
# 创建CRD
kubectl create -f ./crd.yaml
# 修改tidb-cluster.yaml
name: tidb-dubhe
namespace: default # 注释掉
requests: # 限制CPU/MEM,可选
storageClassName: # 可以默认不填或写成"local-path"
externalTrafficPolicy: # Local改为Cluster,可选
mysqlNodePort: 30550 # 取消注释
# 部署tidb
kubectl create namespace tidb
kubectl apply -f tidb-cluster.yaml -n tidb
初始化
yaml示例:
https://github.com/pingcap/tidb-operator/blob/master/manifests/initializer/tidb-initializer.yaml
# 修改tidb-initializer.yaml
apiVersion: pingcap.com/v1alpha1
kind: TidbInitializer
metadata:
name: tidb-dubhe-init
# namespace: demo
spec:
image: tnir/mysqlclient
cluster:
# namespace: demo
name: tidb-dubhe
initSql: |-
create database app;
passwordSecret: tidb-secret
# 创建secret
kubectl create secret generic tidb-secret --from-literal=root=yourpass --namespace=tidb
# 初始化tidb
kubectl apply -f tidb-initializer.yaml -n tidb
# 访问tidb
kubectl get svc -n tidb
mysql://10.193.35.11:300550
root/yourpass
安装monitoring
yaml示例:
- https://github.com/pingcap/tidb-operator/blob/master/manifests/monitor/tidb-monitor.yaml
- https://raw.githubusercontent.com/pingcap/tidb-operator/master/examples/basic/tidb-monitor.yaml
kubectl apply -f tidb-monitor.yaml -n tidb
# Console
http://10.193.35.11:30552
安装dashboard
kubectl apply -f tidb-dashboard.yaml -n tidb
kubectl apply -f tidb-ng-monitoring.yaml -n tidb
# Console
http://10.193.35.11:30551/dashboard