文章目录
一、环境介绍
默认以下环境已装好,且可以正常登录kubesphere控制台。
软件 | 版本 |
---|---|
docker | 20.10.17 |
kubernetes | v1.22.10 |
kubesphere | v3.3.0 |
二、nacos-2.1.0单机部署
- 登录kubesphere控制台 -> 工作台 -> 项目 -> 选择项目
1、配置字典(ConfigMap)中新增 nacos-conf 配置
- 选择的项目 -> 配置 -> 配置字典 -> 创建
1.1、基本信息
- 输入名称 nacos-conf 后点击下一步
1.2、数据设置
-
点击添加数据
说明:- 添加数据的内容来源于 nacos-server-2.1.0.tar.gz 中 nacos/conf 目录下的 application.properties 文件
- nacos-server-2.1.0.tar.gz 下载地址:https://github.com/alibaba/nacos/releases
- 添加 application.properties 文件内容时,需要将 MySQL 的相关配置修改成自己的
-
添加完成之后点击保存创建即可
2、创建自制应用 nacos
- 选择的项目 -> 应用负载 -> 应用 -> 自制应用 -> 创建
2.1、基本信息
- 输入名称 nacos 后点击下一步
2.2、服务设置
- 点击创建服务
- 选择无状态服务
2.2.1、基本信息
- 输入名称 nacos 点击下一步
2.2.2、容器组设置
-
点击添加容器
-
输入镜像名称及版本 nacos/nacos-server:v2.1.0 -> 点击使用默认端口
说明:- 镜像名称和版本可去 docker hub 找,地址:https://hub.docker.com/r/nacos/nacos-server/tags
-
容器的资源限制与资源预留,我此处没有设置
-
端口设置,除默认端口外,新增9848、9849两个端口
说明:- 新增端口参考自官网,地址:https://nacos.io/zh-cn/docs/2.0.0-compatibility.html
- 新增端口参考自官网,地址:https://nacos.io/zh-cn/docs/2.0.0-compatibility.html
-
添加环境变量 MODE=standalone、勾选同步主机时区
-
保存之后点击下一步
2.2.3、存储设置
-
点击挂载配置字典或保密字典
-
按如下设置
说明:- ②:选择在配置字典中新增的 nacos-conf 配置
- ④:/home/nacos/conf/application.properties,其中:/home/nacos/conf 是 nacos 镜像的配置文件目录,application.properties 是配置文件名称。
由于 nacos 中的配置文件并不止我们挂载的这一个,还有其他的日志配置文件等,所以这里我们需要精确到某个配置文件,如果我们只挂载到目录而没有精确到某个配置文件会把里面的都覆盖了,所以容器启动的时候会报错说某个其他配置文件找不到。 - ⑥:指定子路径,就是具体的配置文件名 application.properties
-
设置完之后保存点下一步
2.2.4、高级设置
- 勾选外部访问,选择访问模式为NodePort
- 设置完后点击创建,然后点击下一步
2.3、路由设置
- 添加路由规则,我此处没有设置
- 最后点击创建即可在项目中创建自制应用 nacos
三、使用
- nacos 创建完成之后,在 应用负载 -> 服务 -> nacos 中即可看到外部访问端口
1、访问 nacos 控制台
- 端口使用8848对应的外部访问端口,即<节点 IP 地址>:<外部访问端口>/nacos
2、springboot 中使用
- 端口使用9848对应的外部访问端口 - 1000
- 如果在 springboot 配置文件中使用 ip:31856 连接 nacos,会报错,它会在端口的基础上加 1000 去连接,即连接 ip:32856。因此在 springboot 中配置 nacos,端口应使用9848对应的外部访问端口 - 1000,即配置 ip:30856。
- 配置 ip:31856 连接
启动报如下错误,从错误中可以看到:检查服务是否可用时,检查的是 ip:32856
14:00:55.282 [main] INFO c.a.n.c.r.client - [printIfInfoEnabled,60] - [312f1ccc-537d-4f60-8333-b2e8c95a2fde_config-0] Try to connect to server on start up, server: {serverIp = '123.00.000.456', server main port = 31856}
14:00:58.747 [main] ERROR c.a.n.c.r.c.g.GrpcClient - [printIfErrorEnabled,99] - Server check fail, please check server 123.00.000.456 ,port 32856 is available , error ={}
java.util.concurrent.TimeoutException: Waited 3000 milliseconds (plus 595200 nanoseconds delay) for com.alibaba.nacos.shaded.io.grpc.stub.ClientCalls$GrpcFuture@4cee7fa0[status=PENDING, info=[GrpcFuture{clientCall={delegate={delegate=ClientCallImpl{method=MethodDescriptor{fullMethodName=Request/request, type=UNARY, idempotent=false, safe=false, sampledToLocalTracing=true, requestMarshaller=com.alibaba.nacos.shaded.io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller@d0ec63, responseMarshaller=com.alibaba.nacos.shaded.io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller@5a5c128, schemaDescriptor=com.alibaba.nacos.api.grpc.auto.RequestGrpc$RequestMethodDescriptorSupplier@73eb8672}}}}}]]
- 配置 ip:30856 连接
启动成功连接 nacos
14:24:49.548 [main] INFO c.a.n.c.r.client - [printIfInfoEnabled,60] - [6305db5c-dc2a-4847-97a2-48f31ed9f4c1_config-0] Try to connect to server on start up, server: {serverIp = '123.00.000.456', server main port = 30856}
14:24:50.671 [main] INFO c.a.n.c.r.client - [printIfInfoEnabled,60] - [6305db5c-dc2a-4847-97a2-48f31ed9f4c1_config-0] Success to connect to server [123.00.000.456:30856] on start up, connectionId = 1622012341455_192.168.0.31_9468
最后:水平有限,文章中有错误欢迎指正,也欢迎补充~
参考
[1]: https://blog.youkuaiyun.com/RookiexiaoMu_a/article/details/120610006