由于项目马上要上云原生了k8s即将上线,所有的中间件包括nginx,mysql,elasticsearch,redis,的集群需要进行容器化改造 我们先改造我们的服务注册与配置中心nacos-1.4.2 在linux环境中我们需要下载nacos-docker
git clone https://github.com/nacos-group/nacos-docker.git
在build文件夹中添加我们的nacos-server-1.4.2.tar.gz的文件 之后修改Dockerfile
FROM centos:7.5.1804
MAINTAINER pader "2901570623@qq.com"
# set environment
ENV MODE="cluster" \
PREFER_HOST_MODE="ip"\
BASE_DIR="/home/nacos" \
CLASSPATH=".:/home/nacos/conf:$CLASSPATH" \
CLUSTER_CONF="/home/nacos/conf/cluster.conf" \
FUNCTION_MODE="all" \
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk" \
NACOS_USER="nacos" \
JAVA="/usr/lib/jvm/java-1.8.0-openjdk/bin/java" \
JVM_XMS="1g" \
JVM_XMX="1g" \
JVM_XMN="512m" \
JVM_MS="128m" \
JVM_MMS="320m" \
NACOS_DEBUG="n" \
TOMCAT_ACCESSLOG_ENABLED="false" \
TIME_ZONE="Asia/Shanghai"
ARG NACOS_VERSION=1.4.2
ARG HOT_FIX_FLAG=""
WORKDIR $BASE_DIR
COPY nacos-server-1.4.2.tar.gz /home
RUN set -x \
&& yum update -y \
&& yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel wget iputils nc vim libcurl
RUN tar -xzvf /home/nacos-server-1.4.2.tar.gz -C /home \
&& rm -rf /home/nacos-server-1.4.2.tar.gz /home/nacos/bin/* /home/nacos/conf/*.properties /home/nacos/conf/*.example /home/nacos/conf/nacos-mysql.sql
RUN yum autoremove -y wget \
&& ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone \
&& yum clean all
ADD bin/docker-startup.sh bin/docker-startup.sh
ADD conf/application.properties conf/application.properties
# set startup log dir
RUN mkdir -p logs \
&& cd logs \
&& touch start.out \
&& ln -sf /dev/stdout start.out \
&& ln -sf /dev/stderr start.out
RUN chmod +x bin/docker-startup.sh
EXPOSE 8848
ENTRYPOINT ["/bin/docker-startup.sh"]
之后再build文件夹
docker build -f Dockerfile -t zyj/nacos-server .
注意我们的操作包括教程中所有的操作都是再纯linux环境中完成 不熟悉linux的同学请移步linux教程 启动我们打包好的镜像
docker run -d --name nacos8849 -e PREFER_HOST_MODE=hostname -e MODE=cluster -e NACOS_SERVER_PORT=8848 -e NACOS_SERVERS="192.168.174.110:18848 192.168.174.110:18849 192.168.174.110:18850" -e NACOS_SERVER_IP=192.168.174.110 -e JVM_XMS=256m -e JVM_XMX=512m -v /home/nacos/logs -v /home/nacos/conf -p 18849:8848 zyj/nacos-server
之后以该容器为例
docker inspect nacos8849
查看application.properties (不熟悉docker的同学请移步docker教程)
server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.contextPath=/nacos
server.port=${NACOS_APPLICATION_PORT:8848}
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:"mysql"}
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.num=${MYSQL_DATABASE_NUM:1}
db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:192.168.174.110}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos}?${MYSQL_SERVICE_DB_PARAM:characterEncod
ing=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeou
t=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
db.user=${MYSQL_SERVICE_USER:root}
db.password=${MYSQL_SERVICE_PASSWORD:abc123456}
警告:请学好docker和熟悉云上开发流程
之后重启nacos8848 使用nginx为即将启动的nacos集群作为负载均衡 需要挂载nginx.conf
upstream nacoscluster{
server 192.168.174.110:18848;
server 192.168.174.110:18849;
server 192.168.174.110:18850;
}
server{
listen 8847;
server_name 192.168.174.110;
location /nacos/{
proxy_pass http://nacoscluster/nacos/;
}
}
之后重启nacos
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名,转载请标明出处 最后编辑时间为: 2021/09/19 09:25