新手求指教, springboot 部署到 k8s 上后如何进行服务调用(利用 k8s 原生的服务发现能力)

ldimple 1月前 21

在 springcloud 体系中我们都知道最简单地使用 RestTemplate 进行服务调用,如果是基于 springboot 和 k8s 构建的微服务呢?
最新回复 (13)
  • vhui 1月前
    引用 2
    试试 spring-cloud-kubernetes
  • 楼主 ldimple 1月前
    引用 3
    @vhui 嗯,我也看到网上推荐这个组件
  • FreeEx 1月前
    引用 4
    功能有重叠,感觉 spring cloud + k8s 存粹是脱裤子放屁多此一举。
    看错了,原来是 springboot + k8s,按照 k8s 那一套走即可。
  • goodryb 1月前
    引用 5
    盲猜内部调用走 service clusterip,对外提供服务走 ingress 或者统一的网关服务例如 kong
  • wxsm 1月前
    引用 6
    @goodryb 走 ip 不如走域名
  • puras 1月前
    引用 7
    内部 ServerName:port 就行了吧
  • 楼主 ldimple 1月前
    引用 8
    @puras
    @FreeEx 所以 springboot 业务代码里面怎么调其他的服务呀,springcloud 是 Feign,那部署到 k8s 集群之后呢
  • javapythongo 1月前
    引用 9
    @ldimple #7 继续用 fegin,不过要在注解上的 ip 属性写上 servername:port 走 k8s 自己的网络
  • pavelpiero 1月前
    引用 10
    K8S 走内部调用坑蛮多的
    比如我司生产环境差不多有 6 套集群 虽然是在两个机房 但是同机房不同集群的机器没法基于服务名调用就很坑
    有些跨部门的调用发生了跨集群 就只能走域名
    后来为了迭代升级和避免意外的情况最终还是统一全都走域名调用了
  • iminto 1月前
    引用 11
    代码该咋样还咋样啊,只是 eureka 不需要了,springcloud gateway 里 Robin 策略也不需要了,spring-cloud config 也可以考虑替换
  • namelosw 1月前
    引用 12
    想用 Kubernetes 本身最简单的就是直接调 FQDN, 比如 foo.bar.my-namespace.svc.cluster-domain.example 这样, 如果同 cluster 同 namespace 之类的可以省略调后面的几段
  • THESDZ 1月前
    引用 13
    @pavelpiero endpoint 解决集群外部访问问题
  • 楼主 ldimple 1月前
    引用 14
    @namelosw 像下楼那个大佬说的 endpoint 解决集群外部访问,这样是不是也可以省略 cluster 同 namespace 。
  • 游客
    15
返回