我们在AWS EKS kubernetes集群中运行了一个Hazelcast 3.12集群。
您知道如何将运行在AWS EKS kubernetes群集内部的具有多个pod的Hazelcast群集暴露到kubernetes群集外部吗?
Hazelcast集群有6个吊舱,暴露在kubernetes集群之外,具有LoadBalancer(AWS经典负载平衡器)类型的kubernetes“服务”。
当我从kubernetes集群外部运行Hazelcast客户端时,我能够使用AWS负载平衡器连接到Hazelcast集群。但是,当我尝试从Hazelcast映射中获取一些值时,客户端失败,出现以下错误:
java.io.IOException:没有可用连接到地址[172.17.251.81]: 5701com.hazelcast.client.spi.impl.SmartClientInvocationService.getOrTriggerConnect(SmartClientInvocationService.java:75
该错误涉及IP地址172.17.251.81。这是Hazelcast吊舱的内部kubernetes IP,我无法从kubernetes集群外部连接到该吊舱。我不知道为什么客户端尝试连接到此IP地址而不是负载平衡器公共IP地址。
另一方面,当我将hazelcast集群从6个pod缩放到1个pod时,我能够连接并获得地图值,没有任何问题。
如果您想查看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客户端。
hazelcast-client:
smart-routing: false
如果要使用默认的智能客户端(这意味着性能更好),则需要使用单独的服务公开每个Pod,因为每个Pod都需要从Kubernetes集群外部访问。
在博客中阅读更多内容:如何在库伯内特斯建立自己的内部Hazelcast。
我想在Google容器引擎上运行docker映像的集群前面放置一个HTTP负载平衡器,这样我就可以使用HTTPS,而无需应用程序支持它。 我使用以下命令创建了一个容器集群: 然后,我创建了一个复制控制器,在集群上运行一个映像,该映像基本上是nginx,其中复制了静态文件。 如果我为此创建一个网络负载平衡器,一切都会正常工作。我可以转到我的负载平衡器IP地址并查看网站。但是,如果创建HTTP负载平衡
假设我在一个集群中有3个ActiveMQ Artemis代理: 经纪人_01 在给定的时间点,我有每个经纪人的消费者数量: 经纪人有50名消费者 让我们假设在这个给定的时间点,有70条消息要发送到集群中的一个队列。 我们期望集群完成负载平衡,以便Broker_01将接收50条消息,Broker_0210条消息,Broker_0310条消息,但目前我们正在经历70条消息通过所有3个代理随机分发。 是
我必须手动在MS Azure中创建Kubernetes群集,而不是使用AKS。因此: > 我在一个可用性集中创建了2个VM:一个用于k8s master,第二个用于k8s节点。 我创建了外部负载均衡器并将2个VM添加到后端池。 我使用kubes祈祷创建了k8s集群。 我创建了部署和负载均衡器服务: 但LoadBalancer服务外部IP始终处于挂起状态: 此外,telnet azure\u loa
我遵循了GKE教程,使用beta Inrit类型创建HTTP负载均衡器,并且在使用nginx映像时工作正常。我的问题是为什么Inrit是必要的。 我可以创建一个容器引擎集群,然后创建一个使用库伯内特斯创建的实例组作为服务后端的HTTP负载均衡器,并且一切似乎都运行良好。当仅在部分流程中使用库伯内特斯似乎运行良好时,为什么我要经历使用Inete的所有麻烦?
我正在使用编写负载均衡器。 负载平衡器侦听本地传输地址。就Netty而言,只创建了一个频道来监听该地址。然后,(单线程事件循环组的)单线程将传入的UDP数据包调度到工作线程池进行处理(这里,处理意味着执行负载平衡)。 在出站端,可以使用多个服务器。对于每个接收到的UDP数据包,关联的工作线程选择一个服务器,并将UDP数据包转发到此服务器。为了转发UDP数据包,需要一个通道。 我可以看到四种方法:
我在AWS中的应用程序ELB后面有一个ec2实例。我想将SSL应用于ec2实例和负载平衡器。对于ec2实例,我购买了ssl并安装了它,它工作正常。对于负载平衡器,我将使用免费的AWS ACM证书并将其安装在负载平衡器上。这会有什么问题吗?i、 e.在ec2和elb上安装SSL。