基于KubeSphere在K8S发布微服务ruoyi----3.部署基础环境nacos

   

https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html

https://nacos.io/zh-cn/docs/v2/guide/admin/deployment.html

   

下载安装包

nacos-server-2.1.2.zip 2022.10

https://github.com/alibaba/nacos/releases/download/2.1.2/nacos-server-2.1.2.zip

   

两个关键配置文件

application.properties

mysql-schema.sql

         

nacos\conf\application.properties 需要修改的5

   

application.properties

#*************** Config Module Related Configurations ***************#

### If use MySQL as datasource:

spring.datasource.platform=mysql

### Count of DB:

db.num=1

### Connect URL of DB:

db.url.0=jdbc:mysql://192.168.1.151:31886/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC

db.user.0=root

db.password.0=123456   

此处只是测试用,后面需再改成ry-config这个数据库

      

创建库nacos并导入数据

   

nacos\conf\mysql-schema.sql   

   

K8S创建字典ry-nacos-confkeyapplication.properties

      

   

K8S创建服务和POD

   

nacos/nacos-server:v2.1.2

   

         

单机模式启动   

         

子路径挂载文件,以保证容器初始化时该目录其他文件也不会被删除

先填完整路径/home/nacos/conf/application.properties 不能写为/home/nacos/conf

再指定子路径application.properties

   

      

   

如果采用集群化部署,需再挂载子路径文件cluster.conf

   

nacos的最小集群需要3台服务器的3个IP地址,K8S的POD IP又是可变的,这个如何在K8S中实现?
无法保证pod的IP不变,但可换一种思路,就是保证每个nacos域名不变。只要在K8S中创建有状态的服务,就可以保证每个pod域名不变。

 

知识扩展:

有状态服务的一个大的特点就是拥有稳定的网络标识,每当一个Pod创建成功,他都会有一个相对应的DNS子域名,其格式是 $(pod 名称). $(所属服务的 DNS 域名),而所属服务的DNS域名则与这个无头服务的名称有关,其格式为 $(服务名称). $(命名空间).svc.cluster.local,我们可以通过对这个域名进行解析来获取其IP地址。

https://blog.csdn.net/weixin_44228698/article/details/123243096

 

 

nacos配置集群配置文件参考

来自 <https://nacos.io/zh-cn/docs/v2/guide/admin/cluster-mode-quick-start.html>

   

nacos的解压目录nacos/conf目录下,有配置文件cluster.conf,每行配置成ip:port。(3个或3个以上节点)

cluster.conf配置文件示例

# ip:port
200.8.9.16:8848
200.8.9.17:8848
200.8.9.18:8848

   

在k8s中使用改成域名格式

ry-nacos-v1-0.ry-nacos.ruoyi.svc.cluster.local:8848

ry-nacos-v1-1.ry-nacos.ruoyi.svc.cluster.local:8848

ry-nacos-v1-2.ry-nacos.ruoyi.svc.cluster.local:8848

   

   

      修改配置字典

   

修改集群配置文件

/home/nacos/conf/cluster.conf   

   

   

取消单机模式

   

   

如果k8s拉取镜像失败,可以在节点上用docker拉取试试

docker pull nacos/nacos-server:v2.1.2    

   

正常启动状态截图   

         

如果是集群模式,删除pod后,节点列表在这个3IP轮流转换(pod重建后生成新的IP

   

   

将服务暴露为nodeport

   

   

   

 登录测试

192.168.1.151:30601/nacos

      

   

nacos测试正常后需再数据库改成ry-config

application.properties   

#*************** Config Module Related Configurations ***************#

### If use MySQL as datasource:

spring.datasource.platform=mysql

### Count of DB:

db.num=1

### Connect URL of DB:

db.url.0=jdbc:mysql://192.168.1.151:31886/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC

db.user.0=root

db.password.0=123456   

   

   

posted @ 2023-01-14 16:52  ST运维  阅读(606)  评论(0编辑  收藏  举报