docker下的nacos

搭建 nacos 集群环境
192.168.254.133 mysql主服务
192.168.254.134 mysql从服务
192.168.254.135 nacos1
192.168.254.136 nacos2
192.168.254.137 nacos3
在对nacos部署的机器要求较高 我用的虚拟机 内存4G CPU4核
低配置可能nacos启动报错

  1. 设置 mysql 主从(也可不用做主从)
    (1)拉取 mysql 镜像 (支持5.7以上)
    docker pull mysql:5.7
    2)设置 mysql 主(192.168.254.133)
    a)运行 mysql docker 容器
    docker run -p 3306:3306 --name mysql-master --net=host -v /root/nacos/mysql/master.cnf:/etc/mysql/conf.d/master.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
    其中 master.cnf 内容为 (该文件应该提前创建将配置内容写入 再执行docker run 否则生成是个master.cnf目录)
    [mysqld]
    pid-file = /var/run/mysqld/mysqld.pid
    socket = /var/run/mysqld/mysqld.sock
    datadir = /var/lib/mysql
    symbolic-links=0
    character-set-server = utf8
    #skip-networking
    innodb_print_all_deadlocks = 1
    max_connections = 2000
    max_connect_errors = 6000
    open_files_limit = 65535
    table_open_cache = 128
    max_allowed_packet = 4M
    binlog_cache_size = 1M
    max_heap_table_size = 8M
    tmp_table_size = 16M
    read_buffer_size = 2M
    read_rnd_buffer_size = 8M
    sort_buffer_size = 8Mjoin_buffer_size = 28M
    key_buffer_size = 4M
    thread_cache_size = 8
    query_cache_type = 1
    query_cache_size = 8M
    query_cache_limit = 2M
    ft_min_word_len = 4
    log-bin = mysql-bin
    server-id = 1
    binlog_format = mixed
    performance_schema = 0
    explicit_defaults_for_timestamp
    #lower_case_table_names = 1
    interactive_timeout = 28800
    wait_timeout = 28800

Recommended in standard MySQL setup

sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
b) 进入 mysql docker 容器
docker exec -it mysql-master /bin/bash
c) 登录 mysql 控制台
mysql -uroot -p123456
d) 创建数据同步用户
CREATE USER ‘slave’@‘%’ IDENTIFIED BY ‘123456’;
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘slave’@‘%’;
FLUSH PRIVILEGES;
e) 查看状态,记住 File、Position 的值,在 Slaver 中将用到
show master status;
3)设置 mysql 从(192.168.254.134)
a)运行 mysql docker 容器
docker run -p 3306:3306 --name mysql-slave --net=host -v /root/nacos/mysql/slave.cnf:/etc/mysql/conf.d/slave.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
其中 slave.cnf 内容为 (该文件应该提前创建再执行docker run 否则生成是个slave.cnf目录)
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
symbolic-links=0
character-set-server = utf8
#skip-networking
innodb_print_all_deadlocks = 1
max_connections = 2000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 128
max_allowed_packet = 4M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 28M
key_buffer_size = 4M
thread_cache_size = 8
query_cache_type = 1
query_cache_size = 8M
query_cache_limit = 2M
ft_min_word_len = 4
log-bin = mysql-bin
server-id = 2
binlog_format = mixed
performance_schema = 0
explicit_defaults_for_timestamp
#lower_case_table_names = 1
interactive_timeout = 28800
wait_timeout = 28800

Recommended in standard MySQL setup

sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
b) 进入 mysql docker 容器
docker exec -it mysql-slave /bin/bash
c) 登录 mysql 控制台
mysql -uroot -p123456
d) 设置主库链接
change master to master_host=‘192.168.254.133’, master_user=‘slave’,
master_password=‘123456’, master_port=3306,
master_log_file=‘mysql-bin.000003’, master_log_pos=769, master_connect_retry=30;
e) 启动从库同步
start slave;
f) 查看状态
show slave status\G
4)配置 nacos 数据库
注意!注意!注意!对应的Nacos必须使用对应的mysql脚本,因为存在字段变更,所以,必须相匹配
脚本下载地址https://github.com/alibaba/nacos/releases 根据相对于的nacos版本下载 tar包会有一个nacos-mysql.sql文件 在数据库创建库 进行导入即可
或者复制该sql内容 在导入数据库中:https://github.com/alibaba/nacos/blob/master/distribution/conf/mysql-schema.sql
mysql -uroot -p123456 nacos_config < nacos-mysql.sql
注意:执行前先创建数据库,数据库名称为 nacos_config
2. 搭建 nacos 集群应用 (这里的nacos是2x版本的)
(1)拉取 nacos 镜像
docker pull nacos/nacos-server:latest
2)搭建 nacos 集群
a) 主机 A(192.168.254.135)
docker run -p 8848:8848 -p 9848:9848 -p 9849:9849 --name nacos1 --net=host --env-file=/root/nacos/nacos_config/nacos-hostname.env -v /root/nacos/nacos_config/cluster-logs:/home/nacos/logs -v /root/nacos/nacos_config/custom.properties:/home/nacos/init.d/custom.properties -d nacos/nacos-server:latest(在执行run容器时 先创建-v对应的文件和目录 注意:只创建这两个文件 然后将下面的内容拷贝进去就好 cluster-logs是目录 在执行run时会自己创建该目录 custom.properties nacos-hostname.env需要创建并提前修改的文件)
{Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。}
( Nacos2.0增加了9848,9849端口来进行GRPC通信,我需要在application.properties中额外配置吗?
不需要,这两个端口在Nacos2.0内部是通过8848+1000以及8848+1001这种偏移量方式计算出来的,不需要用户额外在配置文件中配置。但如果使用的是docker或存在端口转发方式启动,需要把这两个端口进行配置。
启动nacos2.0时希望用nginx 代理,9848这个端口怎样处理,要通过nginx暴露出来么?以及docker是否需要映射?
如果存在防火墙或者nginx端口转发问题,需要进行相应的端口暴露配置。如在nginx中,在已经暴露8848(x)的基础上,需要额外暴露9848(x+1000)。)
其中 nacos-hostname.env 内容为
#支持域名还是ip模式
PREFER_HOST_MODE=ip
#系统启动方式:单机/集群 cluster/standalone默认 cluster
MODE=cluster
#多网卡模式下可以指定IP 部署机器的ip
#NACOS_SERVER_IP=192.168.254.135
#集群地址 ip1:port1空格ip2:port2 空格ip3:port3
NACOS_SERVERS=192.168.254.135:8848 192.168.254.136:8848 192.168.254.137:8848
#单机模式下支持MYSQL数据库
SPRING_DATASOURCE_PLATFORM=mysql
#数据库连接地址
MYSQL_SERVICE_HOST=192.168.254.133
#备数据库的连接地址
MYSQL_SLAVE_SERVICE_HOST=192.168.254.134
#数据库库名
MYSQL_SERVICE_DB_NAME=nacos_config
#备数据库库名
MYSQL_SLAVE_SERVICE_DB_NAME=nacos_config
#数据库端口 默认3306
MYSQL_SERVICE_PORT=3306
#备数据库端口
MYSQL_SLAVE_SERVICE_PORT=3306
#数据库用户名
MYSQL_SERVICE_USER=root
#备数据库用户名
MYSQL_SLAVE_SERVICE_USER=root
#数据库用户密码
MYSQL_SERVICE_PASSWORD=123456
#备数据库用户密码
MYSQL_SLAVE_SERVICE_PASSWORD=123456
#JVM参数 默认是2G 如果使用虚拟机,内存没有2G,就需要调整这里的参数,否则将无法启动
JVM_XMS=256m
JVM_XMX=512m
JVM_XMN=512m
其中 custom.properties 内容为
#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200

metrics for prometheus

management.endpoints.web.exposure.include=*

metrics for elastic search

#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200

metrics for influx

#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true
b) 主机 B(192.168.254.136)
docker run -p 8848:8848 -p 9848:9848 -p 9849:9849 --name nacos2 --net=host --env-file=/root/nacos/nacos_config/nacos-hostname.env -v /root/nacos/nacos_config/cluster-logs:/home/nacos/logs -v /root/nacos/nacos_config/custom.properties:/home/nacos/init.d/custom.properties -d nacos/nacos-server:latest其中 nacos-hostname.env 内容为
#支持域名还是ip模式
PREFER_HOST_MODE=ip
#系统启动方式:单机/集群 cluster/standalone默认 cluster
MODE=cluster
#多网卡模式下可以指定IP 部署机器的ip
#NACOS_SERVER_IP=192.168.254.136
#集群地址 ip1:port1空格ip2:port2 空格ip3:port3
NACOS_SERVERS=192.168.254.135:8848 192.168.254.136:8848 192.168.254.137:8848
#单机模式下支持MYSQL数据库
SPRING_DATASOURCE_PLATFORM=mysql
#数据库连接地址
MYSQL_SERVICE_HOST=192.168.254.133
#备数据库的连接地址
MYSQL_SLAVE_SERVICE_HOST=192.168.254.134
#数据库库名
MYSQL_SERVICE_DB_NAME=nacos_config
#备数据库库名
MYSQL_SLAVE_SERVICE_DB_NAME=nacos_config
#数据库端口 默认3306
MYSQL_SERVICE_PORT=3306
#备数据库端口
MYSQL_SLAVE_SERVICE_PORT=3306
#数据库用户名
MYSQL_SERVICE_USER=root
#备数据库用户名
MYSQL_SLAVE_SERVICE_USER=root
#数据库用户密码
MYSQL_SERVICE_PASSWORD=123456
#备数据库用户密码
MYSQL_SLAVE_SERVICE_PASSWORD=123456
#JVM参数 默认是2G 如果使用虚拟机,内存没有2G,就需要调整这里的参数,否则将无法启动
JVM_XMS=256m
JVM_XMX=512m
JVM_XMN=512m
其中 custom.properties 内容为
#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200

metrics for prometheus

management.endpoints.web.exposure.include=*

metrics for elastic search

#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200

metrics for influx

#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true
c) 主机 C (192.168.251.42)
docker run -p 8848:8848 -p 9848:9848 -p 9849:9849 --name nacos3 --net=host --env-file=/root/nacos/nacos_config/nacos-hostname.env -v /root/nacos/nacos_config/cluster-logs:/home/nacos/logs -v /root/nacos/nacos_config/custom.properties:/home/nacos/init.d/custom.properties -d nacos/nacos-server:latest其中 nacos-hostname.env 内容为
#支持域名还是ip模式
PREFER_HOST_MODE=ip
#系统启动方式:单机/集群 cluster/standalone默认 cluster
MODE=cluster
#多网卡模式下可以指定IP 部署机器的ip
#NACOS_SERVER_IP=192.168.254.137
#集群地址 ip1:port1空格ip2:port2 空格ip3:port3
NACOS_SERVERS=192.168.254.135:8848 192.168.254.136:8848 192.168.254.137:8848
#单机模式下支持MYSQL数据库
SPRING_DATASOURCE_PLATFORM=mysql
#数据库连接地址
MYSQL_SERVICE_HOST=192.168.254.133
#备数据库的连接地址
MYSQL_SLAVE_SERVICE_HOST=192.168.254.134
#数据库库名
MYSQL_SERVICE_DB_NAME=nacos_config
#备数据库库名
MYSQL_SLAVE_SERVICE_DB_NAME=nacos_config
#数据库端口 默认3306
MYSQL_SERVICE_PORT=3306
#备数据库端口
MYSQL_SLAVE_SERVICE_PORT=3306
#数据库用户名
MYSQL_SERVICE_USER=root
#备数据库用户名
MYSQL_SLAVE_SERVICE_USER=root
#数据库用户密码
MYSQL_SERVICE_PASSWORD=123456
#备数据库用户密码
MYSQL_SLAVE_SERVICE_PASSWORD=123456
#JVM参数 默认是2G 如果使用虚拟机,内存没有2G,就需要调整这里的参数,否则将无法启动
JVM_XMS=256m
JVM_XMX=512m
JVM_XMN=512m
其中 custom.properties 内容为
#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200

metrics for prometheus

management.endpoints.web.exposure.include=*

metrics for elastic search

#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200

metrics for influx

#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true
3)登录 nacos 平台
http://192.168.254.135:8848/nacos
http://192.168.254.136:8848/nacos
http://192.168.254.137:8848/nacos
初始账号:nacos
密码:nacos
3. 修改 nacos 登录密码
具体可参考网址:https://www.liangzl.com/get-article-detail-123442.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值