1. 首页 > 国产数据库教程 > TiDB教程 > 正文

tidb-100-TiDB Docker容器化部署实战

3.1.2 编写Docker Compose配置文件

# docker-compose.yml
version: '3'风哥提示:

services:
  pd:
    image: pingcap/pd:v6.5.0
    ports:
      - "2379:2379"
    volumes:
      - ./data/pd:/data
    command:
      - "--name=pd1"
      - "--data-dir=/data"
      - "--client-urls=http://0.0.0.0:2379"
      - "--peer-urls=http://0.0.0.0:2380"
      - "--initial-cluster=pd1=http://pd:2380"
    restart: always

  tikv:
    image: pingcap/tikv:v6.5.0
    ports:
      - "20160:20160"
    volumes:
      - ./data/tikv:/data
    command:
      - "--addr=0.0.0.0:20160"
      - "--data-dir=/data"
      - "--pd=pd:2379"
    depends_on:
      - pd
    restart: always

  tidb:
    image: pingcap/tidb:v6.5.0
    ports:
      - "4000:4000"
      - "10080:10080"
    command:
      - "--store=tikv"
      - "--path=pd:2379"
    depends_on:
      - tikv
    restart: always

  tiflash:
    image: pingcap/tiflash:v6.5.0
    ports:
      - "3930:3930"
    volumes:
      - ./data/tiflash:/data
    command:
      - "--pd_addr=pd:2379"
      - "--addr=0.0.0.0:3930"
      - "--data_dir=/data"
    depends_on:
      - pd
    restart: always

3.1.3 启动TiDB集群

# 创建数据目录
mkdir -p data/pd data/tikv data/tiflash

# 启动集群
docker-compose up -d

# 查看容器状态
docker-compose ps

# 查看日志
docker-compose logs -f

3.2 使用Kubernetes部署TiDB

3.2.1 准备Kubernetes环境

# 安装kubectl
curl -LO “https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl”
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

# 安装minikube(开发测试环境)
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start

3.2.2 使用TiDB Operator部署

# 安装TiDB Operator
helm repo add pingcap https://charts.pingcap.org/
helm repo update
helm install tidb-operator pingcap/tidb-operator –namespace tidb-admin –create-namespace

# 部署TiDB集群
kubectl apply -f tidb-cluster.yaml

3.2.3 TiDB集群配置文件

# tidb-cluster.yaml学习交流加群风哥QQ113257174
apiVersion: pingcap.com/v1alpha1
kind: TidbCluster
metadata:
  name: fgedudb
  namespace: default
spec:
  version: v6.5.0
  timezone: UTC
  pvReclaimPolicy: Delete
  pd:
    baseImage: pingcap/pd
    replicas: 3
    requests:
      storage: "10Gi"
    config:
      replication:
        max-replicas: 3
  tikv:
    baseImage: pingcap/tikv
    replicas: 3
    requests:
      storage: "100Gi"
    config:
      storage:
        resync-concurrency: 4
  tidb:
    baseImage: pingcap/tidb
    replicas: 2
    service:
      type: NodePort
    config:
      log.level: "info"
  tiflash:
    baseImage: pingcap/tiflash
    replicas: 2
    requests:
      storage: "100Gi"

3.3 配置管理

3.3.1 环境变量配置

# docker-compose.yml 中的环境变量配置
tidb:
  image: pingcap/tidb:v6.5.0
  ports:
    - "4000:4000"
  environment:
    - TIDB_SERVER_PORT=4000
    - TIDB_STATUS_PORT=10080
    - TIDB_LOG_LEVEL=info
  command:
    - "--store=tikv"
    - "--path=pd:2379"

3.3.2 配置文件挂载

# docker-compose.yml 中的配置文件挂载
tikv:
  image: pingcap/tikv:v6.5.0
  volumes:
    - ./config/tikv.toml:/etc/tikv/tikv.toml
    - ./data/tikv:/data
  command:
    - "--config=/etc/tikv/tikv.toml"

3.4 监控与维护

3.4.1 监控容器状态

# 查看容器状态
docker ps

# 查看容器日志
docker logs [container_id]

# 进入容器
docker exec -it [container_id] bash

3.4.2 备份与恢复

# 备份TiDB数据
docker exec -it [tidb_container] tiup br backup full –pd “pd:2379” –storage “s3://backup-bucket/fgedudb/$(date +%Y%m%d)”

# 恢复TiDB数据
docker exec -it [tidb_container] tiup br restore full –pd “pd:2379” –storage “s3://backup-bucket/fgedudb/20240101”

更多视频教程www.fgedu.net.cn

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息