Docker部署Nacos2.2.3集群环境

Docker部署Nacos2.2.3集群环境

拉取镜像

docker pull nacos/nacos-server:v2.2.3

配置mysql环境

  • 创建数据库,比如:sso-nacos

  • 创建对应账号密码

    CREATE USER 'sso_nacos'@'%' IDENTIFIED BY '123456';
    GRANT ALL PRIVILEGES ON sso_nacos.* TO 'sso_nacos'@'%';
    flush privileges;
    
  • 创建表:从github获取建表语句,地址:https://github.com/alibaba/nacos/blob/2.2.3/distribution/conf/mysql-schema.sql

image-20240416103530773

挂载启动集群

配置nacos集群,至少需要三个节点

10.196.69.88 node88
10.196.69.90 node90
10.196.69.92 node92

创建挂载目录

mkdir -p /AppHome/docker/nacos-cluster

拷贝容器目录

先不进行任何配置,直接启动一个nacos容器,然后将容器中的data、conf、log、bin拷贝到/AppHome/docker/nacos-cluster目录下

直接启动:

docker run --name nacos-server -d nacos/nacos-server:v2.2.3

拷贝目录:

docker cp nacos-server:/home/nacos/conf /AppHome/docker/nacos-cluster/
docker cp nacos-server:/home/nacos/logs /AppHome/docker/nacos-cluster/
docker cp nacos-server:/home/nacos/bin  /AppHome/docker/nacos-cluster/
docker cp nacos-server:/home/nacos/data /AppHome/docker/nacos-cluster/

删除容器:

docker stop nacos-server
docker rm nacos-server

目的是:为了进行挂载启动,以后修改配置文件、查看日志时更加方便。

配置application.properties

/AppHome/docker/nacos-cluster/conf/application.properties文件中,我们直接将原有采用环境变量方式的配置根据实际情况进行修改。

修改:

vim /AppHome/docker/nacos-cluster/conf/application.properties

修改内容如下:

# 端口
server.port=8848[8858、8868]
spring.datasource.platform=mysql
# 数据库数量,如果mysql配置了主从就设置为 2及其以上
db.num=3
# mysql连接
db.url.0=jdbc:mysql://10.196.69.88:3306/sso_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
db.url.1=jdbc:mysql://10.196.69.90:3306/sso_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
db.url.2=jdbc:mysql://10.196.69.92:3306/sso_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
db.user=sso_nacos
db.password=123456

配置cluster.conf

vim /AppHome/docker/nacos-cluster/conf

修改内容如下:

[root@node88 conf]# more cluster.conf
#2024-04-12T10:09:24.587
10.196.69.88:8848
10.196.69.90:8848
10.196.69.92:8848

配置docker-startup.sh

修改startup.sh文件,主要屏蔽cluster.conf文件写入,JVM参数设置暂时省略。

修改:

vim /AppHome/docker/nacos-cluster/bin/docker-startup.sh

屏蔽cluster.conf文件写入:

# 1、注释print_servers方法中的 echo "" >"$CLUSTER_CONF"
# 2、修改遍历方式为`cat ../conf/cluster.conf`
# 3、修改后,结果如下:
function print_servers() {
  if [[ ! -d "${PLUGINS_DIR}" ]]; then
    # echo "" >"$CLUSTER_CONF"
    for server in `cat ../conf/cluster.conf`; do
      echo "$server" >>"$CLUSTER_CONF"
    done
  else
    bash $PLUGINS_DIR/plugin.sh
    sleep 30
  fi
}
  • 为什么屏蔽echo "" >"$CLUSTER_CONF"
    因为我们自己定了cluster.conf,不屏蔽的话,会导致cluster.conf中的内容被置为空。
  • cat …/conf/cluster.conf 的目的
    目的是为了打印出cluster.conf中配置的节点,方便排查错误以及验证是否配置成功。

挂载启动容器

docker  run \
--name nacos-server-1 -d \
--privileged=true \
--restart=always \
-p 7848:7848 \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e MODE=cluster \
-e PREFER_HOST_MODE=hostname \
-e NACOS_SERVER_IP=10.196.69.88 \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_AUTH_IDENTITY_KEY="nacos_docker" \
-e NACOS_AUTH_IDENTITY_VALUE="nacos_docker" \
-e NACOS_AUTH_TOKEN="cXdlMXJ0eTJ1aTNvcGw0a2poNWdmNmRzYXp4N2N2Ym5t" \
-v /AppHome/docker/nacos-cluster/logs:/home/nacos/logs \
-v /AppHome/docker/nacos-cluster/data:/home/nacos/data \
-v /AppHome/docker/nacos-cluster/conf:/home/nacos/conf \
-v /AppHome/docker/nacos-cluster/bin:/home/nacos/bin \
reg-hub.gzeport.com/tools/nacos/nacos-server:v2.2.3

其他节点注意修改

–name nacos-server-1

-e NACOS_SERVER_IP=10.196.69.88

-e NACOS_AUTH_TOKEN=自定义指定生成JWT的密钥,使用BASE64进行编码,编码前的key长度必须不小于32个字符

集群搭建成功后,数据会进行同步;访问任意一个节点,都可以看到所有的服务列表、配置列表等数据.

image-20240416105900364

参考

1.https://nacos.io/docs/v2/guide/admin/cluster-mode-quick-start/

2.https://zhuanlan.zhihu.com/p/490063678?utm_id=0

3.https://blog.csdn.net/zhuocailing3390/article/details/136974882

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇