Java 要对接 K8s,请问集群上 master 节点,如果挂了,会自动转接到备用的机子上吗?

2022-12-07 19:06:15 +08:00
 gzk329

我 java 在本地用一份 config 里边配了一个 server 地址,如果这台 master 机子挂了,可以继续维持与集群的连接吗?还是说我必须换一份 config ?

1829 次点击
所在节点    Kubernetes
9 条回复
defunct9
2022-12-07 19:08:35 +08:00
放到 configmap 里
LindsayZhou
2022-12-07 20:01:31 +08:00
如果你的地址是这台 master 的实际 IP 的话,不能。

一般多 Master 的生产实践是做个虚拟 IP 之类的东西,虚拟 IP 转发到后面的 Master 上去,一个 Master 挂了不会影响虚拟 IP 访问的可用性,这样你的 config 就不用换。

你的 java 不是跑在 pod 里的?跑在 pod 里的话,不用管外面的结构怎么样,全部都用 kubernetes.default.svc 访问 api server 就行了。

以我不多的经验来理解,是这样的。
gzk329
2022-12-07 21:51:27 +08:00
@LindsayZhou 我的 java 是跑在外面的 我要和 k8s 建立连接 要一个 config 文件 里边有集群的相关配置信息 主要是怕写在 config 中的 master 节点挂掉
seers
2022-12-07 22:20:31 +08:00
一般 master 节点都有 HA 的(最少三个 master ),对外暴露单独的 IP ,后面的节点挂了会自动漂移 IP ,所以无需多虑,当然还要和你们运维确认下有没有部署 HA
mango88
2022-12-07 22:27:54 +08:00
k8s 服务暴露通过什么方式 ?
如果有 Keepalived 和 Haproxy 组件的话,对外是一个 浮动 IP 地址 这个就不用担心这个问题
也可以把几个 master 节点的 IP 全都配上,如果都挂了,集群也挂了。。。
b1ghawk
2022-12-08 07:14:29 +08:00
做工 HA 吧。
gzk329
2022-12-08 10:30:14 +08:00
还有 java 和 K8s 集群建立连接需要写个连接池吗?
我感觉是需要 不过他这个没有连接销毁的 api 但本质又是基于 okhttp 写的
为啥感觉和这个 K8s 给的 java api 好难用啊 注释基本没有 文档也基本没
gzk329
2022-12-08 10:33:13 +08:00
@gzk329 还是就基于 okhttp 的连接池就行了吧?
OPA
2022-12-08 12:54:15 +08:00
多 master 的话连接地址会切换到备用上去

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

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

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

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

© 2021 V2EX