k8s 安装nacos集群通过域名:8848访问不起作用

最近使用k8s安装nacos使用的是nacos-group提供的nacos-no-pvc-ingress.yaml,但是安装成功之后发现springboot注册nacos失败,但是www.example.com/nacos能访问,这个如何解决?

spring:
  application:
    name: gatewayserver
  profiles:
    active: dev
  cloud:
    nacos:
      discovery:
        # dev
        server-addr: http://www.example.com/nacos
        namespace:xxx-xxx-xxx

本地启动mvn spring-boot:run发现注册失败

阅读 6.7k
1 个回答

已解决,使用nacos-no-pvc-ingress.yaml文件,k8s安装nacos的时候,ingress里面的path不要设置别名,直接用'/',如下所示 :

spring:
  rules:
    - host: demo.nacos.com
      http:
        paths:
          - path: /
            backend:
              serviceName: nacos-headless
              servicePort: server

然后springboot这样访问:

spring:
  application:
    name: gatewayserver
  profiles:
    active: dev
  cloud:
    nacos:
      discovery:
        # dev
        server-addr: http://www.example.com
        namespace:xxx-xxx-xxx

注意:开发dev环境使用域名访问,测试或者生产环境用k8s部署的微服务不能使用域名,因为pod内的集群只能通过k8s dns解析出来的域名来访问,如:server-addr: http://nacos-headless.default.svc.cluster.local:8848,这是k8s特性,否则你使用dev开发环境的www域名则会报错!!!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进