在 Kubernetes 上为 Ignite 运行 正确命名空间和 DsicoverSpi

Correct Namespace and DsicoverSpi for Ignite running on Kubernetes

关于如何在 Kubernetes 中设置 Ignite,我有两个问题。

  1. 是否所有节点都需要同名space?例如。如果我有一个胖客户端和一个服务器节点,是否需要两者同名space才能形成一个集群?

根据我的研究,我认为答案是肯定的,他们需要使用相同的名称space,但我还没有找到任何确定的文档

  1. 客户端和服务器节点都需要 运行 TcpDiscoveryKubernetesIpFinder 还是节点可以混合使用 TcpDiscoveryKubernetesIpFinder 和静态 IPfinder?

根据我的研究,我相当有信心所有节点都必须是 运行 TcpDiscoveryKubernetesIpFinder,但我还是没有找到任何明确的文档。

据我所知,Ignite 方面没有任何限制。但需要解决的主要问题之一是——如何在动态的 K8s 世界和额外的网络虚拟化中配置发现和通信。从技术上讲,可以将默认的 TcpDiscoveryVmIpFinder 与一组预定义的 IP 一起使用,但您需要跟踪真实的 pods IP 并在重新启动时相应地更改它们。要解决此问题,建议使用 TcpDiscoveryKubernetesIpFinder,它使用配置的 K8s 服务控制器来解析 IP。

因此回答您的问题:

  1. 我不明白为什么不同的命名空间不起作用。至少如果 RBAC 配置正确并且两个命名空间中的 pods 可以访问该服务并相互访问。

  2. 不,您可以使用任何 IpFinder,但它更简单,建议使用上面提到的 TcpDiscoveryKubernetesIpFinder。请注意,如果您需要从 K8s 外部访问集群,您可能需要进行额外的配置:https://ignite.apache.org/docs/latest/clustering/running-client-nodes-behind-nat