1. 程式人生 > 其它 >基於Docker搭建Nacos叢集

基於Docker搭建Nacos叢集

file
準備機器3臺

192.168.1.160
192.168.1.161
192.168.1.162

docker安裝

CentOS 7下安裝Docker及基礎操作
安裝
mysql

基於docker安裝mysql

docker run \
-p 3306:3306 \
--name nacos-mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7


初始化sql
sql指令碼入口: https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql

Nacos

建立Nacos的工作目錄

// 每個節點都建立
mkdir -p /usr/local/docker/nacos-server
mkdir -p /usr/local/docker/nacos-server/env
mkdir -p /usr/local/docker/nacos-server/logs
mkdir -p /usr/local/docker/nacos-server/init.d


調整custom.properties

vim /usr/local/docker/nacos-server/init.d/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





調整nacos-hostname.env

vim /usr/local/docker/nacos-server/env/nacos-hostname.env

#nacos dev env
# 首選主機模式
PREFER_HOST_MODE=hostname
# 當前主機的IP
NACOS_SERVER_IP=192.168.1.160
# 叢集的各個節點
NACOS_SERVERS=192.168.1.160:8848 192.168.1.161:8848 192.168.1.162:8848
# 資料庫的配置
MYSQL_SERVICE_HOST=192.168.1.100
MYSQL_SERVICE_DB_NAME=nacos
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=root

# 從節點 這裡就使用單節點測試,因此就不配置從節點
#MYSQL_SLAVE_SERVICE_HOST=xxx
#MYSQL_SLAVE_SERVICE_PORT=3306

# JVM引數 預設是2G 如果使用虛擬機器,記憶體沒有2G,就需要調整這裡的引數,否則將無法啟動
JVM_XMS=256m
JVM_XMX=256m
JVM_XMN=256m



將配置檔案拷貝到其他兩臺機器

scp -r /usr/local/docker/nacos-server/env/nacos-hostname.env [email protected]:/usr/local/docker/nacos-server/env/nacos-hostname.env
scp -r /usr/local/docker/nacos-server/env/nacos-hostname.env [email protected]:/usr/local/docker/nacos-server/env/nacos-hostname.env

scp -r /usr/local/docker/nacos-server/init.d/custom.properties [email protected]:/usr/local/docker/nacos-server/init.d/custom.properties
scp -r /usr/local/docker/nacos-server/init.d/custom.properties [email protected]:/usr/local/docker/nacos-server/init.d/custom.properties


docker啟動(3個節點)

docker run \
-p 8848:8848 \
--restart=always \
--name nacos-node \
--env-file=/usr/local/docker/nacos-server/env/nacos-hostname.env \
-v /usr/local/docker/nacos-server/logs:/home/nacos/logs \
-v /usr/local/docker/nacos-server/init.d/custom.properties:/home/nacos/init.d/custom.properties \
-d nacos/nacos-server


file:
異常檢視

// 如果出現異常,可以在/usr/local/docker/nacos-server/logs目錄下檢視
tail -f /usr/local/docker/nacos-server/logs/nacos.log


測試

訪問任意節點的8848埠; 如: 192.168.1.160:8848/nacos 預設使用者名稱和密碼為: nacos/nacos ;登入之後檢視節點即可看到如下效果.


file:
當停用任何一個節點,都不會影響正常的使用
Nginx代理Nacos叢集

建立nacos.conf;新增以下配置

upstream nacos_server {
server 192.168.1.160:8848;
server 192.168.1.161:8848;
server 192.168.1.162:8848;
}

server {
listen 80;
listen 443 ssl;
#填寫繫結證書的域名
server_name nacos.你的域名;
#ssl on;
ssl_certificate /你的證書路徑.crt;
ssl_certificate_key /你的金鑰路徑.key;
ssl_session_timeout 5m;
#按照這個協議配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#按照這個套件配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;

charset utf-8;

resolver 223.5.5.5 223.6.6.6 1.2.4.8 114.114.114.114 valid=3600s;

location / {
proxy_read_timeout 90;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;

proxy_pass http://nacos_server;
}
}




重啟服務

sbin/nginx -t
sbin/nginx -s reload
————————————————
版權宣告:本文為CSDN博主「一行Java」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/lupengfei1009/article/details/107414969