gpt4 book ai didi

amazon-web-services - 使用负载均衡器在AWS EKS上发布Hazelcast集群

转载 作者:行者123 更新时间:2023-12-02 12:10:05 26 4
gpt4 key购买 nike

我们有一个在AWS EKS kubernetes集群中运行的Hazelcast 3.12集群。
您是否知道如何将在AWS EKS kubernetes集群内部运行的具有多个Pod的Hazelcast集群暴露给kubernetes集群之外?
Hazelcast集群具有6个Pod,并通过类型为LoadBalancer(AW​​S经典负载均衡器)的kubernetes“服务”暴露在kubernetes集群外部。
当我从kubernetes集群外部运行Hazelcast客户端时,可以使用AWS负载均衡器连接到Hazelcast集群。但是,当我尝试从Hazelcast映射中获取一些值时,客户端将失败,并显示以下错误:

java.io.IOException: No available connection to address [172.17.251.81]:5701 at com.hazelcast.client.spi.impl.SmartClientInvocationService.getOrTriggerConnect(SmartClientInvocationService.java:75


该错误提到IP地址172.17.251.81。这是Hazelcast Pod的内部kubernetes IP,我无法从kubernetes集群外部连接到该IP。我不知道为什么客户端尝试连接到此IP地址而不是Load Balancer公用IP地址。
另一方面,当我将hazelcast群集从6扩展到1个pod时,我可以连接并获取 map 值而没有任何问题。
如果您想查看kubernetes LoadBalancer服务配置:
kind: Service
apiVersion: v1
metadata:
name: hazelcast-elb
labels:
app: hazelcast
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
spec:
ports:
- name: tcp-hazelcast-elb
port: 443
targetPort: 5701
selector:
app: hazelcast
type: LoadBalancer

最佳答案

如果使用一个LoadBalancer服务公开所有Pod,则需要使用Hazelcast Unisocket Client

hazelcast-client:
smart-routing: false
如果要使用默认的 Smart Client(这意味着更好的性能),则需要为每个Pod提供单独的服务,因为需要从Kubernetes集群外部访问每个Pod。

在博客文章 How to Set Up Your Own On-Premises Hazelcast on Kubernetes中了解更多信息。

关于amazon-web-services - 使用负载均衡器在AWS EKS上发布Hazelcast集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63795700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com