Rancher快速搭建中间件并持久化数据

docker/Rancher快速搭建中间件,并持久化数据

背景

公司使用rancher搭建部分中间件过程中,遇到docker重启过程中数据会丢失的问题,解决方案如下

包含中间件:

DB:达梦、mysql、pg、oracle、hive

中间件:es、hadoop、redis、zookeeper

达梦数据库

环境变量

UNICODE_FLAG1
PAGE_SIZE16
LOG_SIZE1024
LENGTH_IN_CHAR1
LD_LIBRARY_PATH/opt/dmdbms/bin
INSTANCE_NAMEdm8
EXTENT_SIZE32
BLANK_PAD_MODE1

存储卷

/opt/dmdbms/data

镜像

https://eco.dameng.com/download/

MYSQL

环境变量

存储卷

镜像

常见需求:

制作开启binlog的mysql镜像
准备文件

准备文件mysqld.cnf文件内容如下

[mysqld]
log-bin=mysql-bin
binlog-format=ROW

准备文件Dockerfile文件内容如下

# 基于 mysql:5.7.44 镜像构建
FROM mysql:5.7.44

# 将自定义的 mysqld.cnf 文件复制到镜像中的指定位置
COPY mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf
制作镜像
docker build -t mysql-binlog:5.7.44 .

PG

环境变量

备注
POSTGRES_PASSWORDxxxxx密码

存储卷

容器路径数据路径(RancherNFS数据卷路径,可修改)备注
/var/lib/postgresql/datapg_data数据存储路径

镜像

postgres:10.5

常见问题

增加数据库连接数

如果已经将文件映射到外部,那么在映射目录中可以查到postgresql.conf文件修改下面的max_connections就可以更改最大连接数了,需要重启服务!

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
#port = 5432                            # (change requires restart)
max_connections = 5000                  # (change requires restart)

ORACLE

环境变量

备注
IMPORT_FROM_VOLUMEtrue在初始化数据库之后,第二次使用现有数据卷启动时应该修改为false

存储卷

容器路径数据路径(RancherNFS数据卷路径,可修改)备注
/var/lib/postgresql/datapg_data数据存储路径,需要有读写执行权限

镜像

truevoly/oracle-12c:latest

hive

环境变量

SERVICE_OPTS-Djavax.jdo.option.ConnectionDriverName=org.postgresql.Driver -Djavax.jdo.option.ConnectionURL=jdbc:postgresql://pg10:5432/hive_metadata -Djavax.jdo.option.ConnectionUserName=postgres -Djavax.jdo.option.ConnectionPassword=xxxxxx
IS_RESUMEtrue
DB_DRIVERpostgres

存储卷

容器路径数据路径(RancherNFS数据卷路径,可修改)备注
/opt/hive/data/warehousees_data数据路径,需要有读写执行权限

镜像

apache/hive:3.1.3

常见问题

制作hive-postgre镜像
准备文件
# 使用官方的 Apache Hive 镜像作为基础镜像
FROM apache/hive:3.1.3

# 复制 PostgreSQL JDBC 驱动到 Hive 的 lib 目录并重命名
COPY /root/postgresql-42.6.0.jar /opt/hive/lib/postgres.jar
构建
docker build -t hive-with-postgresql .
hive为什么要和pg有关系?

hive中只存储了数据,结构信息(元数据)需要存储在db中

ES

环境变量

备注
http.publish_port30294映射端口,可不设置
http.publish_host10.4.44.16映射IP,可不设置
ES_JAVA_OPTS-Xms512m -Xmx512m
discovery.typesingle-node

存储卷

容器路径数据路径(RancherNFS数据卷路径,可修改)备注
/usr/share/elasticsearch/dataes_data数据路径,需要有读写执行权限
/usr/share/elasticsearch/pluginses_plugins插件路径
/usr/share/elasticsearch/configes_config配置路径

镜像

elasticsearch:7.16.2

常见需求:

设置密码

修改config目录elasticsearch.yml

xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

设置好存储卷之后进入bin目录

执行下方命令,分别为elastic, kibana, logstash_system,beats_system设置密码

elasticsearch-setup-passwords interactive

hadoop

环境变量

存储卷

容器路径数据路径(RancherNFS数据卷路径,可修改)备注
/tmp/hadoop-root/dfs/data/currenthadoop_dataes/hadoop_data_folder需要有读写执行权限
/tmp/hadoop-root/dfs/name/currenthadoop_dataes/hadoop_name_folder需要有读写执行权限
/tmp/hadoop-root/dfs/namesecondary/currenthadoop_dataes/hadoop_namesecondary_folder需要有读写执行权限

静态文件,需要放到对应的存储上。
https://download.csdn.net/download/weixin_39919140/89569341

镜像

sequenceiq/hadoop-docker:2.7.1

常见问题

使用对应镜像但是无法启动服务,手动启动一个镜像,然后将对应这个目录下的内容拷贝到实际位置就可以启动了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值