前置环境

nacos集群版需要mysql作为数据源。所以需要k8s中安装mysql数据库并建好数据库表。

此次搭建 naocs:2.0.3 版本的集群,下载官方的安装包,获取其中的配制文件及SQL文件,下载地址:https://github.com/alibaba/nacos/releases/tag/2.0.3。

首先在数据库中创建一个nacos_config数据库,并执行config 目录下的 nacos-mysql.sql

编辑配置文件

进入kubeshere的配置中心,新建一个配置nacos-conf。

新建配置项application.properties,配置的值,就是复制nacos/conf目录下的application.properties。

配置项主要修改的地方是,开启数据源,配置mysql的地址和数据名。mysql地址为k8s中mysql的DNS

1
2
3
4
5
6
7
8
9
10
### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://mysql-5-7.common-util:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456

注意:服务DNS的组成就是:服务名.项目名

再新建一个配置项cluster.conf,用来配置集群信息,就是复制nacos/conf目录下cluster.conf

1
2
3
nacos-v1-0.nacos.common-util.svc.cluster.local:8848
nacos-v1-1.nacos.common-util.svc.cluster.local:8848
nacos-v1-2.nacos.common-util.svc.cluster.local:8848

注意:这里面不好弄的就是这三个nacos集群节点的地址,节点的地址是:服务名-容器序号-服务DNS.svc.cluster.local:端口

也就是说这里得先约定创建nacos服务的时候名字为nacos。因为创建的是有状态服务所以服务ID是固定的为v1-0 v1-1 v1-2 …依次类推

创建nacos工作负载

选择创建有状态服务。

名称一定要是和上面集群地址约定的一样,本例子中为nacos。

副本数选择3,容器选择nacos/nacos-server:v2.1.0。Nacos2.0版本因为考虑1.x版本的升级用户。所以2.0版本启动时必须先以1.X模式启动。Nacos 2.1版本默认关闭从1.x版本升级。副本数也可选择1,单节点部署。

Nacos2.0以上版本增加grpc连接,所以端口设置8848和9848。

同步主机时区。

若是副本数1,单节点部署,需要增加环境变量 MODE:standalone

挂载配置文件。

application.properties 挂载到:/home/nacos/conf/application.properties。

添加子文件application.properties。

cluster.conf 挂载到:/home/nacos/conf/cluster.conf。

添加子文件cluster.conf。若是副本数1,单节点部署,则不需要。

点击下一步,点击创建。查看日志。

为 nacos 创建一个 NodePort的服务

选择指定工作负载。

指定工作负载,选择刚才创建的nacos服务。

端口设置8848和9848。

然后下一步,选择外部访问,NodePort 模式。

最后创建,点击该服务进入详情,释放的端口不固定,外网访问端口也需要修改相差1000。

点击更新,即可看到释放的端口。

在浏览器访问http://192.168.418.111:31432/nacos。使用 nacos/nacos 登录