我很担心Ingress和Load Balancer在Kubernetes中的角色.
据我所知,Ingress用于将来自互联网的传入流量映射到群集中运行的服务.
负载均衡器的作用是将流量转发到主机.在这方面,入口与负载平衡器有何不同?与Amazon ELB和ALB相比,kubernetes中的负载均衡器的概念是什么?
什么是数据库集群?如果允许同一数据库位于2个不同的服务器上,它们如何使数据保持同步.这与数据库服务器角度的负载均衡有何不同?
在AWS EC2中,我在EC2实例前面启动一个经典负载均衡器(EC2实例的安全组是launch-wizard-3)。
我想更改EC2实例安全组的入站规则。还启动了Classical Load Balancer 的安全组(其名称为my-first-load-balancer-sg )。当我将launch-wizard-3的入站规则的来源更改为my-first-load-balancer-sg 时,提示以下错误。
您不能为现有 IPv4 CIDR 规则指定引用的组 ID。
入站规则如下
(类型-HTTP、协议-TCP、端口 rang-80、源类型-自定义、源- my-first-load-balancer-sg(我想要放置的内容))
我多次尝试解决它,但我无法解决。
load-balancing amazon-web-services ec2-ami aws-security-group
我正在使用Spring Security构建一个Web应用程序,该应用程序将存在于Amazon EC2上并使用Amazon的Elastic Load Balancers.不幸的是,ELB不支持粘性会话,因此我需要确保我的应用程序在没有会话的情况下正常工作.
到目前为止,我已经设置了RememberMeServices来通过cookie分配令牌,这很好用,但我希望cookie随浏览器会话一起过期(例如当浏览器关闭时).
我不得不想象我不是第一个想要在没有会话的情况下使用Spring Security的人......有什么建议吗?
我有一个关于如何负载平衡Web套接字的问题.
我有一个支持Web套接字的服务器.浏览器连接到我的站点,每个浏览器打开一个Web套接字www.mydomain.com.这样,我的社交网络应用程序可以将消息推送到客户端.
传统上,只使用HTTP请求,我会通过在两个Web服务器前添加第二个服务器和负载均衡器来扩展.
使用Web套接字,连接必须直接与Web服务器,而不是负载平衡器,因为如果一台机器的物理限制为64k开放端口,并且客户端连接到负载均衡器,那么我无法支持超过64k并发用户.
那我该怎么办 -
让页面加载时客户端直接连接到Web服务器(而不是负载均衡器)?我是否只是从节点加载JavaScript,并且每次最初请求页面时,负载均衡器(或其他)会随机修改脚本的URL?
处理涟漪开始?当Web服务器关闭时,浏览器会注意到连接已关闭.我可以编写JavaScript代码来尝试重新打开连接,但该节点将会消失一段时间.所以我想我必须回到负载均衡器来查询下一个要使用的节点的地址?
我确实想知道负载均衡器在初始请求上发送重定向,以便浏览器最初请求www.mydomain.com并重定向到www34.mydomain.com.这很有效,直到节点出现故障 - 像Facebook这样的网站不这样做.他们是如何做到的呢?
我正在尝试在kubernetes上部署nginx,kubernetes版本是v1.5.2,我已经部署了3个副本的nginx,YAML文件在下面,
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: deployment-example
spec:
replicas: 3
revisionHistoryLimit: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
ports:
- containerPort: 80
Run Code Online (Sandbox Code Playgroud)
现在我想在节点的端口30062上公开它的端口80,因为我在下面创建了一个服务,
kind: Service
apiVersion: v1
metadata:
name: nginx-ils-service
spec:
ports:
- name: http
port: 80
nodePort: 30062
selector:
app: nginx
type: LoadBalancer
Run Code Online (Sandbox Code Playgroud)
这项服务应该是合理的,但它不仅在终端上的kubernetes仪表板上显示为待定.


所以请帮我解决这个问题.谢谢 ...
我已经在这方面工作了几天,我找到了几个解决方案,但没有一个简单或轻巧.问题基本上是这样的:我们有一个由10台机器组成的集群,每台机器在多线程ESB平台上运行相同的软件.我可以很容易地处理同一台机器上的线程之间的并发问题,但是对于不同机器上的相同数据的并发性呢?
本质上,软件接收通过Web服务将客户数据从一个企业提供给另一个企业的请求.但是,客户可能存在或可能不存在于另一个系统上.如果没有,我们通过Web服务方法创建它.所以它需要一种测试和设置,但我需要某种形式的信号量来锁定其他机器导致竞争条件.我曾经遇到过为一个本地客户创建两次远程客户的情况,这是不太理想的.
我从概念上玩弄的解决方案是:
使用我们的容错共享文件系统创建"锁定"文件,每个机器将根据客户检查这些文件
在我们的数据库中使用一个特殊的表,并锁定整个表,以便为锁记录进行"测试和设置".
使用Terracotta,一种开源服务器软件,有助于扩展,但使用中心辐射模型.
使用EHCache同步复制我的内存"锁".
我无法想象我是唯一一个遇到过这种问题的人.你是怎么解决的?你在内部做饭还是有最喜欢的第三方产品?
我一直致力于移动技术,现在我正在涉足后端系统,更具体地说是系统设计。我不断遇到关于 api 网关和负载均衡器角色的相互矛盾的陈述。谷歌搜索只返回了同样的六个结果,这些结果主要集中在一些著名服务提供的负载均衡器或 API 网关服务的实现上。我将在这里列出我面临的所有困惑,希望有人能够澄清所有这些。
有时,我发现 API 网关是与客户端设备通信的单点。另一方面,有些地方提到“请求发送到负载均衡器,负载均衡器将其均匀地分布在服务器上”。那么什么是正确的呢?API网关接收请求还是负载均衡器?
其他地方,当我用谷歌搜索这个主题时,说两者完全不同。我知道 API Gateway 可以做很多事情,比如 SSL 终止、日志记录、限制、验证等,但它也可以做负载平衡。那么API网关本身就是一个负载均衡器,还具备其他职责吗?
关于这个主题,我想了解负载均衡器是否在同一集群的服务器之间或不同的数据中心或集群之间分配负载?那么 API 网关呢?
api gateway 有什么特殊之处以至于它成为微服务架构的默认选择?API 网关托管在哪里?DNS 将域名解析为负载均衡器或 API 网关?
可能很清楚,我完全困惑了。如果问题正确的话,在哪些系统中负载均衡器比 API Gateway 受益更多。
dns load-balancing distributed-system system-design api-gateway
高可扩展性的一种方法是使用网络负载平衡来分割多个服务器之间的处理负载.
这种方法提出的一个挑战是服务器是状态感知的 - 将用户状态存储在"会话"中.
该问题的一个解决方案是"粘性会话"(又名"会话亲和性"),其中每个用户被分配给单个服务器,并且他/她的状态数据在整个会话期间专门包含在该服务器上.
"粘性会话"方法的优点和缺点是什么?你是否使用它,如果是这样,你对它感到满意吗?
load-balancing ×10
kubernetes ×2
session ×2
amazon-ec2 ×1
api-gateway ×1
concurrency ×1
database ×1
dns ×1
ec2-ami ×1
java ×1
nginx ×1
scalability ×1
scaling ×1
server-push ×1
spring ×1
sticky ×1
terracotta ×1
websocket ×1