开发者社区 > 云原生 > 正文

nacos中出现集群异常是什么原因呢?

用的是 nacos/nacos-server:v2.1.0 这个镜像 部署是参考了 https://github.com/nacos-group/nacos-k8s/blob/master/deploy/nacos/nacos-no-pvc-ingress.yaml

当把 name: NACOS_SERVERS 的值配置成为如下的域名的时候,集群是正常的 value: "nacos-0.nacos-headless.default.svc.cluster.local:8848 nacos-1.nacos-headless.default.svc.cluster.local:8848 nacos-2.nacos-headless.default.svc.cluster.local:8848"

但是如果把每个pod 都对应的去创建一个service(3个),并且把 name: NACOS_SERVERS 配置为 3个service IP的时候,集群是异常的 类似这样 value: "10.113.20.51:8848 10.113.22.38:8848 10.113.16.106:8848" 但是这3个service ip 和3个pod是一一对应的。异常信息如下图: lALPJwY7TvXKHWzNBwzNC7Y_2998_1804.png 这个问题要怎么解决呢?

展开
收起
哈喽!小陈 2022-08-01 14:29:59 755 0
4 条回答
写回答
取消 提交回答
  • Nacos中出现集群异常可能有以下几种原因:

    网络问题:Nacos集群中各个节点需要能够相互通信,如果网络出现问题,可能会导致集群异常。例如,网络延迟、网络断开或者网络不稳定都可能导致集群异常。
    配置问题:如果Nacos的配置文件或者集群配置文件有错误或者不正确,也可能会导致集群异常。例如,配置项缺失、配置项冲突或者配置项错误都可能导致集群异常。
    服务器问题:Nacos运行在服务器上,如果服务器出现故障,如服务器宕机、服务器负载过高、服务器内存不足等,也可能导致集群异常。
    Nacos版本不兼容:如果Nacos的版本之间存在不兼容的情况,也可能导致集群异常。例如,不同版本的Nacos之间进行通信可能会出现问题。
    端口被占用:Nacos使用默认端口8848,如果该端口已被其他程序占用,也会导致Nacos无法正常运行,从而出现集群异常。
    以上是可能导致Nacos集群异常的一些原因,具体原因需要根据实际情况进行分析和排查。

    2023-11-29 09:47:57
    赞同 展开评论 打赏
  • Nacos中出现集群异常可能有以下几种原因:

    Nacos客户端升级为2.x版本后,新增了gRPC的通信方式,但两个端口在原先的端口(默认8848)上进行了偏移量自动生成,导致集群之间无法正常通信。
    没有配置数据库,或者代码没有顶格,导致db.num is null错误。
    没有编写集群配置文件,或者存在有中文安装路径,导致无法启动嵌入式tomcat。
    内存不足,需要修改分配内存大小。

    2023-11-29 09:47:54
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    问题可能出在Nacos集群的Service发现上。当您将name: NACOS_SERVERS的值配置为3个Service IP时,集群出现异常。这可能是因为Nacos无法正确发现和注册这些Service。以下是一些建议您可以尝试的操作:

    1. 确保您已经正确部署了Nacos Server,并且它正在运行。您可以检查Nacos Server的日志文件以确认。
    2. 确保您已经正确部署了Nacos客户端,并且它正在运行。您可以检查Nacos客户端的日志文件以确认。
    3. 检查您的Kubernetes集群配置,确保Service的IP地址是正确的,并且已经正确地为Pod分配了这些IP地址。
    4. 检查您的Nacos客户端配置,确保name: NACOS_SERVERS的值包含正确的Service名称或Cluster IP,而不是直接使用Service IP。例如,您可以使用kubectl get svc -n default命令获取Service的Cluster IP。
    5. 如果问题仍然存在,您可以尝试在Nacos客户端的配置文件中添加日志级别和日志输出方式的配置,以便更详细地查看客户端的运行日志,以便于定位问题。
    2023-11-25 22:42:52
    赞同 展开评论 打赏
  • 您的情况可能是因为每个 service 不一定是唯一的 IP 地址,所以出现了冲突。
    您可以尝试使用 Ingress 控制器来统一管理 IP 地址,而不是直接指定 IP 地址。
    具体步骤如下:

    1. 在 kubernetes 中部署 ingress 控制器;
    2. 在 ingress 规则中映射 service;
    3. 使用 service 名称代替 IP 地址。
    2023-11-23 22:42:04
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Nacos架构&原理 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载