记一次 spring cloud gateway 在 k8s 环境中域名解析失败问题

记一次 spring cloud gateway 在 k8s 环境中域名解析失败问题

环境: gateway + zookeeper ; gateway 配置的 lb 负载均衡模式;

因为gateway和k8s环境服务发现机制不一致,k8s内部是通过 service名称向外提供服务,而gateway中服务注册的是hostname(对应 k8s中 pod的 hostname), 导致 k8s环境中gateway 无法正确访问到其他服务

解决: 1. 添加配置 (对应配置类 ZookeeperDiscoveryProperties)

discovery:

prefer-ip-address: true

该配置让 gateway相关服务注册服务的时候使用ip地址,而不是使用 hostname, 这样gateway访问其他服务的时候就不需要进行域名解析了,但是这样做会导致服务无法使用k8s提供服务端负载均衡功能了

解决:2. 将 lb 协议改成具体的 http(具体协议) 协议 ,加上 服务在 k8s 环境中 service 的名称 和 端口, 这种方式可以使用 k8s 提供的服务端负载均衡功能

相关推荐
不见长安见晨雾32 分钟前
将Java程序打包成EXE程序
java·开发语言
jonssonyan42 分钟前
稳了,搭建Docker国内源图文教程
运维·docker·容器
福大大架构师每日一题1 小时前
16.2 k8s容器基础资源指标讲解
云原生·容器·kubernetes·prometheus
周湘zx1 小时前
k8s中的微服务
linux·运维·服务器·微服务·云原生·kubernetes
逸狼1 小时前
【JavaEE初阶】多线程(5 单例模式 \ 阻塞队列)
java·开发语言
工业甲酰苯胺2 小时前
k8s 中的 Ingress 简介
云原生·容器·kubernetes
希忘auto2 小时前
Java之线程篇四
java
蓝黑20202 小时前
Java知识点小结3:内存回收
java·gc
Yz98762 小时前
Hadoop里面MapReduce的序列化与Java序列化比较
java·大数据·jvm·hadoop·分布式·mapreduce·big data
凯哥Java2 小时前
优化批处理流程:自定义BatchProcessorUtils的设计与应用
java·数据库·mysql