我正在尝试通过 Kubernetes 环境中的瘦客户端使用 Ignite 和我的 java 应用程序设置分布式缓存。
在我的 Kubernetes 集群中,我有 2 个带有 java 应用程序的 pod 和 2 个 ignite 的 pod。为了让 java pod 与 ignite pod 通信,我配置了一个瘦客户端来连接 ignite kubernetes 服务。使用这种配置,我期望负载平衡在 kubernetes 端。这是我在java代码中所做的:
ClientConfiguration cfg = new ClientConfiguration()
.setAddresses("ignite-service.default.svc.cluster.local:10800")
.setUserName("user")
.setUserPassword("password");
IgniteClient igniteClient = Ignition.startClient(cfg);
在从 ignite 存储和获取对象时,我删除了一个 ignite pod,过了一会儿,我收到错误消息,提示“Ignite 集群不可用”:
org.apache.ignite.client.ClientConnectionException:点燃集群不可用
通过这种行为,我假设 ClientConfiguration 类中的 setAddresses 方法存储了 pod 的 IP 之一,并将所有通信引导到该 pod。
这是这种方法中发生的事情吗?
点燃 2.7 版
Kubernetes 版本 1.12.3