单节点部署是指将 TEM 的所有服务和元信息数据库都部署在单个节点上,由该节点提供 TEM 的全部能力。单节点部署具有如下优势:
- 节省资源,所有服务都部署在同一台主机上,最大程度的节省主机资源。
- 方便调试,所有请求都在同一台主机处理,没有分布式处理的问题,便于日志查找。
- 依赖少,无需依赖负载均衡服务。
TEM 安装包的格式为 tem-package-${version}-linux-${arch}.tar.gz,其中 ${version} 为 TEM 版本,${arch} 为⽬标机器的 CPU 架构,例如:tem-package-v3.2.0-linux-amd64.tar.gz。
步骤一:解压 TEM 安装包并进入目录内
tar xvf tem-package-v3.2.0-linux-amd64.tar.gz
cd tem-package-v3.2.0-linux-amd64
步骤二:准备元数据库部署配置⽂件
由于 TEM 使用平凯数据库作为元数据库,因此需要先准备好部署平凯数据库的配置⽂件。所谓“元数据库”就是指 TEM 自己运行时所需要的“系统配置数据库”。
具体步骤如下:
在解压后的安装包目录下,将安装包内
metadb_topology_template.yaml⽂件复制为metadb_topology.yamlcp metadb_topology_template.yaml metadb_topology.yaml编辑元数据库配置文件
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保存并关闭编辑器。
步骤三:准备 TEM 部署配置文件
将目录内的
config_template.yaml⽂件另外复制一份并命名为config.yamlcp config_template.yaml config.yaml编辑
config.yaml⽂件中相应的配置,指定与 TEM 和元数据库相关的各个参数,编辑过程与前文相同,此处不再赘述。重点需要关注下面注释的地方global: user: "tidb" group: "tidb" ssh_port: 22 deploy_dir: "/tem-deploy" data_dir: "/tem-data" arch: "amd64" log_level: "info" enable_tls: false # 是否开启TLS验证,开启后如果不配置证书密钥,则会生成自签证书和密钥 server_configs: # 这⾥指定 tem 节点的全局配置 tem_servers: db_addresses: "{IP1}:4000" # 填写 metadb 配置的套接字,若配置了多个元数据库的地址,应以逗号分隔且确保⽆空格 db_u: "root" # 若由 tem 辅助创建的元数据库,请使⽤ root ⽤户 db_pwd: "" # 若由 tem 辅助创建的元数据库,请使⽤空密码 db_name: "test" # 若由 tem 辅助创建的元数据库,请使⽤ test 数据库 log_filename: "/tem-deploy/tem-server-8080/log/tem.log" log_tem_level: "info" log_max_size: 300 log_max_days: 0 log_max_backups: 0 external_tls_cert: "" # tem 对外使用的tls证书 external_tls_key: "" # tem 对外使用的tls密钥 internal_tls_ca_cert: "" # tem 内部节点间双向验证使用的tls证书 internal_tls_cert: "" # tem 内部节点间双向验证使用的tls证书 internal_tls_key: "" # tem 内部节点间双向验证使用的tls证书 tem_servers: - host: "{IP1}" # 请填写 tem 节点的实际地址 port: 8080 mirror_repo: true # 是否开启镜像仓库,多个TEM节点时,有且仅有一个节点开启开关 TLS 只能在部署时选择,部署后不可更改,如果 TEM 开启 TLS 则需要元数据库也同步开启 TLS。
下面是一个配置⽂件的示例
global: user: "tidb" group: "tidb" ssh_port: 22 deploy_dir: "/tem-deploy" data_dir: "/tem-data" arch: "amd64" log_level: "info" enable_tls: false # 是否开启TLS验证 server_configs: # 这⾥指定 tem 节点的全局配置 tem_servers: db_addresses: "127.0.0.1:4000" # 填写 metadb 配置的套接字,若配置了多个元数据库的地址,应以逗号分隔且确保⽆空格 db_u: "root" # 若由 tem 辅助创建的元数据库,请使⽤ root ⽤户 db_pwd: "" # 若由 tem 辅助创建的元数据库,请使⽤空密码 db_name: "test" # 若由 tem 辅助创建的元数据库,请使⽤ test 数据库 log_filename: "/tem-deploy/tem-server-8080/log/tem.log" log_tem_level: "info" log_max_size: 300 log_max_days: 0 log_max_backups: 0 external_tls_cert: "" # tem 对外使用的tls证书 external_tls_key: "" # tem 对外使用的tls密钥 internal_tls_ca_cert: "" # tem 内部节点间双向验证使用的tls证书 internal_tls_cert: "" # tem 内部节点间双向验证使用的tls证书 internal_tls_key: "" # tem 内部节点间双向验证使用的tls证书 tem_servers: - host: "127.0.0.1" # 请填写 tem 节点的实际地址 port: 8080 mirror_repo: true # 是否开启镜像仓库,多个TEM节点时,有且仅有一个节点开启 - host: "127.0.0.2" port: 8080 mirror_repo: false # 是否开启镜像仓库,多个TEM节点时,有且仅有一个节点开启 - host: "127.0.0.3" port: 8080 mirror_repo: false # 是否开启镜像仓库,多个TEM节点时,有且仅有一个节点开启
步骤四:执⾏部署 TEM 命令
# 使⽤ root 或者具有 sudo 权限的账户执⾏该脚本。
sudo ./install.sh