PingKai Logo下载

部署高可用 TEM

TEM 支持高可用部署,对于⾼可⽤部署的⽅式,可以将 TEM 服务部署到最多 3 个节点上。在部署之前,请确保⽤于部署 TEM 的主机和 3 台⽬标主机先做好部署⽤户的双向互信且 3 台 TEM 主机公私钥⼀致之后,⽤户根据需要修改 template 生成的 yaml 文件 metadb_topology_template.yamltemplate.yaml ⽂件内容,就可以通过运⾏ tiup tem deploy 完成整个部署过程。

步骤一:建立互信

下⾯以 IP1, IP2, IP3 三台机器为例,假设三台机器上均有⼀个具有 sudo 权限的 tem ⽤户,执⾏以下命令建⽴双向互信

[tem@IP1 ~] ssh-keygen -t rsa -b 2048 -f /home/tem/.ssh/id_rsa -N ""
[tem@IP1 ~] ssh-copy-id -i /home/tem/.ssh/id_rsa.pub tem@IP2
[tem@IP1 ~] ssh-copy-id -i /home/tem/.ssh/id_rsa.pub tem@IP3
 
[tem@IP2 ~] ssh-keygen -t rsa -b 2048 -f /home/tem/.ssh/id_rsa -N ""
[tem@IP2 ~] ssh-copy-id -i /home/tem/.ssh/id_rsa.pub tem@IP1
[tem@IP2 ~] ssh-copy-id -i /home/tem/.ssh/id_rsa.pub tem@IP3
 
[tem@IP3 ~] ssh-keygen -t rsa -b 2048 -f /home/tem/.ssh/id_rsa -N ""
[tem@IP3 ~] ssh-copy-id -i /home/tem/.ssh/id_rsa.pub tem@IP1
[tem@IP3 ~] ssh-copy-id -i /home/tem/.ssh/id_rsa.pub tem@IP2

步骤二:解压 TEM 安装包并进入目录内

tar xvf tidb-server-v9.0.0-linux-amd64.tar.gz
cd tidb-server-v9.0.0-linux-amd64

步骤三:初始化环境变量

bash local_install.sh
source /root/.bashrc

步骤四:准备元数据库部署配置⽂件

由于 TEM 使用平凯数据库作为元数据库,因此需要先准备好部署平凯数据库的配置⽂件。所谓“元数据库”就是指 TEM 自己运行时所需要的“系统配置数据库”。

具体步骤如下:

  1. 执行 template 命令,生成配置文件 topology.yaml metadb_topology.yaml

     tiup tem template
  2. 编辑元数据库配置文件 metadb_topology.yaml,该⽂件本质为部署平凯数据库的配置⽂件,具体编辑过程可按如下操作

    打开 metadb_topology.yaml 文件:

    vim metadb_topology.yaml

    i 进入编辑模式,配置下面注释的地方:

    global:
      user: "tidb"
      ssh_port: 22
      deploy_dir: "/tidb-deploy"
      data_dir: "/tidb-data"
      arch: "amd64"
    
    pd_servers:
      - host: {IP1} # 更换成部署 TEM 的主机 IP
      
    tidb_servers:
      - host: {IP1} # 同上
        port: 4000
    
    tikv_servers:
      - host: {IP1} # 同上

    配置完成后,按 ESC 退出编辑模式,输入 :wq 后按 Enter 保存并关闭编辑器。

  3. 编辑 template.yaml ⽂件中相应的配置,指定与 TEM 和元数据库相关的各个参数,编辑过程与前文相同,此处不再赘述。重点需要关注下面注释的地方

        server_configs:
          tem_servers:
            # TEM元数据库地址,默认:当前机器IP:4000
            db_addresses: "10.233.90.77:4000"
            # TEM元数据库用户名,默认:root
            # 我们推荐具有root权限的数据库⽤户,请确保该⽤户具有以下的权限
            # grant select, update, insert, delete on *.* to <⽤户名>; grant references on *.* to <⽤户名>;
            # grant create, drop on *.* to <⽤户名>; grant alter on *.* to <⽤户名>;
            # grant show databases, show view on *.* to <⽤户名>; grant create view on *.* to <⽤户名>;
            # grant create, drop, index on *.* to <⽤户名>; grant create user on *.* to <⽤户名>;
            # grant config on *.* to <⽤户名>;
            db_u: "root"
            # TEM元数据库密码,默认:空
            db_pwd: ""
            # TEM元数据库名称(如果不存在会自动创建),默认:tem
            db_name: "tem"
            # TEM敏感数据加密密钥,长度为16/24/32。默认:空,采用Base64加密
            secret: ""
            # TEM单个日志文件大小,单位:M,默认:300
            log_max_size: 300
            # TEM日志最长保留天数,默认:0(不限制)
            log_max_days: 30
            #    # TEM日志最大备份数量,默认:0(不限制)
            #    log_max_backups: 0
            #    # 开启TLS后被外部访问的单向验证证书文件路径
            #    external_tls_cert: ""
            #    # 开启TLS后被外部访问的单向验证密钥文件路径
            #    external_tls_key: ""
            #    # 开启TLS后内部节点间双向验证的CA证书文件路径
            #    internal_tls_ca_cert: ""
            #    # 开启TLS后内部节点间双向验证的证书文件路径
            #    internal_tls_cert: ""
            #    # 开启TLS后内部节点间双向验证的密钥文件路径
            #    internal_tls_key: ""
        
            # TEM服务实例信息
            tem_servers:
              - host:  "10.233.90.77"
                # 服务监听端口,默认:8080
                port: 8080
                # 是否开启镜像仓库,多个TEM节点时,有且仅有一个节点开启,默认:true
                mirror_repo: true
                # 是否开启最小运行时环境,多个TEM节点时,有且仅有 TiUP 所在节点开启,默认:true
                minimal_runtime_env: true
            #   # TEM高可用部署
              - host: "127.0.0.2"
            #    # 服务监听端口,默认:8080
            #    port: 8080
            #    # 是否开启镜像仓库,多个TEM节点时,有且仅有一个节点开启,默认:true
            #    mirror_repo: false

步骤五:执行部署

tiup tem deploy <topology> [flags]