开发环境使用宿主机部署,测试和生产使用 k8s。会有什么坑吗?

2023-11-29 08:41:37 +08:00
 cookii
背景,Java 项目,spring cloud 技术栈。因为和 springcloud 体系耦合很重,一下子剥离不开,还需要继续使用 springcloud 。



开发人员需要和开发环境相互调用,但注册中心里是 docker 容器里的 IP 地址。



想简单处理,开发环境维持老的方式部署,测试和生产部署 k8s 容器。请教一下有经验的大佬,这样会有什么坑吗?
3779 次点击
所在节点    Kubernetes
28 条回复
OceanBreeze
2023-11-29 09:01:20 +08:00
开发人员需要和开发环境相互调用---没看懂。
harvies
2023-11-29 09:02:55 +08:00
配置下静态路由,本地环境就可以访问 service 的 cluster ip 了
DoctorDeng
2023-11-29 09:03:27 +08:00
改下应用网络,直接使用宿主机网络,不过这样可能会出现端口冲突,需要规划下各个应用端口使用
gitrebase
2023-11-29 09:05:31 +08:00
开发环境怎么能网络调用其他的服务呢,单测的话 mock 掉就好了,想运行发测试环境就行
cookii
2023-11-29 09:06:34 +08:00
@OceanBreeze developer 的 pc 需要调用 dev 环境上的 server
orange2023
2023-11-29 09:09:21 +08:00
路由器配置下 K8 网段的静态路由表
xiaobai1213
2023-11-29 09:11:41 +08:00
集群里起一个 vpn
或者使用 ingress 、metallb 这种工具直接暴露出来
cookii
2023-11-29 09:12:11 +08:00
@harvies
@DoctorDeng
@orange2023
各位大佬,网络权限不在我们控制之下,而且我们是没有服务器的 root 权限的。
chaleaochexist
2023-11-29 09:14:14 +08:00
我不是 java 栈的, 机会难得, 想请教大佬.

>>> Java 项目,spring cloud 技术栈。因为和 springcloud 体系耦合很重,一下子剥离不开,还需要继续使用 springcloud 。

剥离之后使用什么技术栈啊?
cookii
2023-11-29 09:15:25 +08:00
@chaleaochexist 直接用 springboot 就行了。或者任意 web 框架都可以,只关注 http 协议,不关注具体框架
aapeli
2023-11-29 09:22:56 +08:00
推荐使用 telepresence , 可以帮助开发者更方便的进行 k8s 环境下的应用开发,它能让你的本机直接访问到 k8s 集群内的服务,也可以将集群内的请求流量劫持到本机进行处理,这样就不需要在开发调试中反复进行构建镜像,推送镜像,部署服务的流程了,直接在本地一站式完成,比较方便。

https://github.com/telepresenceio/telepresence
aapeli
2023-11-29 09:24:12 +08:00
DoctorDeng
2023-11-29 09:25:56 +08:00
既让网络控制不了,就部署一个 VPN ,我之前弄过一个类似的,在一台服务器上部署一个 v2ray ,然后电脑连接到该服务器 v2ray ,这样本地电脑就可以轻松访问只有服务器才能访问的资源了
cookii
2023-11-29 09:27:48 +08:00
@aapeli 感谢,我研究一下这个方案。这个需要 windows 开发机的管理员权限吗?这个权限我们也是没有的。
cookii
2023-11-29 09:28:23 +08:00
@DoctorDeng 感谢大佬,vpn 的方案我去研究一下。
aapeli
2023-11-29 09:32:34 +08:00
@imzhoukunqiang 没在 win 下装过,你试试,如果不行可以在 wsl 里试试
sampeng
2023-11-29 09:37:02 +08:00
@imzhoukunqiang 这是个假需求
serialt
2023-11-29 09:50:22 +08:00
okteto 可以了解一下,本地编辑代码,syncthing 自动同步到 pod 里
xomix
2023-11-29 10:05:07 +08:00
你无非就是想把容器当宿主机使用,你把你需求报你的运维人员看看他们能不能给你们提供方案,不能你就部署容器的时候往里面丢类似 webmin 、1panel 这样的管理套件然后让运维人员给你们暴露端口即可。
楼上这些建议有点偏离你的本质需求。
cookii
2023-11-29 10:15:53 +08:00
@xomix 谢谢,实际上网络端口都是通的,只是需要暴露出来。ingress 的方式是可以的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/996099

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX