Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes-内部负载平衡安全_Kubernetes - Fatal编程技术网

Kubernetes-内部负载平衡安全

Kubernetes-内部负载平衡安全,kubernetes,Kubernetes,我们正在扩展我们的微服务群应用程序,我正在研究Kubernetes以满足我们的需求。在深入研究现代编排之前,我曾以以下方式思考服务发现: 集群是用某种分布式服务注册中心(在我们的例子中是concur)引导的 启动每个服务时都会以某种方式传入service registry端点 每个服务都在注册表中自我注册 每当服务需要一些其他服务地址时,它就会从注册表中获取联系人 在这种情况下,如果任何服务出现故障或某种网络中断,客户端服务可能会继续与下一个接触点进行连接,并最终成功(如果它没有完全断开)。

我们正在扩展我们的微服务群应用程序,我正在研究Kubernetes以满足我们的需求。在深入研究现代编排之前,我曾以以下方式思考服务发现:

  • 集群是用某种分布式服务注册中心(在我们的例子中是concur)引导的
  • 启动每个服务时都会以某种方式传入service registry端点
  • 每个服务都在注册表中自我注册
  • 每当服务需要一些其他服务地址时,它就会从注册表中获取联系人
在这种情况下,如果任何服务出现故障或某种网络中断,客户端服务可能会继续与下一个接触点进行连接,并最终成功(如果它没有完全断开)。据我所知,kubernetes使用了完全不同的模型:

  • 所有吊舱均在kubernetes中自行注册
  • Kubernetes提供单个负载平衡器实例,将流量传递给服务
  • 负载平衡器本身可能通过环境变量或DNS查询被发现(这可能会导致令人毛骨悚然的事情,例如从DNS记录中获取端口或只是过时的环境变量)

这让我有点困惑。如果我是正确的(如果是这样的话,请随时告诉我我不是),这基本上会将负载平衡器变成SPOF,它可能会在整个应用程序死机时停止运行。我说得对吗?Kubernetes是否保证此类情况不会发生或将在中得到解决?

Kubernetes中的集群内负载平衡器(kube代理)分布在集群的所有节点中。它将所有服务端点同步到节点上的iptables规则。Kube代理由kubelet进行健康检查,如果30秒内不健康,将重新启动(我认为这是可配置的)。实际的流量不会通过kube代理二进制文件,因此如果kube代理被卡住,最糟糕的情况是您对服务端点的看法过时。查看文档和服务文档,以及这个kubernetes网络平台,了解有关kube代理的更多详细信息

对于服务发现,每个服务都可以通过kube dns按名称访问。POD的搜索路径中有kube dns,因此不需要环境变量magic。同一组中有一个完整的DNS->虚拟IP->Pod流量演练


因此,负载平衡器并不是真正的SPOF。它应该主要与运行在同一节点上的工作负载共享命运。Kube dns可以是服务发现的SPOF,但它可以根据您的喜好进行复制。

Kubernetes中的集群内负载平衡器(Kube代理)分布在您集群的所有节点中。它将所有服务端点同步到节点上的iptables规则。Kube代理由kubelet进行健康检查,如果30秒内不健康,将重新启动(我认为这是可配置的)。实际的流量不会通过kube代理二进制文件,因此如果kube代理被卡住,最糟糕的情况是您对服务端点的看法过时。查看文档和服务文档,以及这个kubernetes网络平台,了解有关kube代理的更多详细信息

对于服务发现,每个服务都可以通过kube dns按名称访问。POD的搜索路径中有kube dns,因此不需要环境变量magic。同一组中有一个完整的DNS->虚拟IP->Pod流量演练


因此,负载平衡器并不是真正的SPOF。它应该主要与运行在同一节点上的工作负载共享命运。Kube dns可以作为服务发现的SPOF,但无论您喜欢什么,它都可以复制。

我现在很困,但我想我明白了。我最不想问的是——iptables实现总是路由到同一个后端,直到重新配置,对吗?一个连接将路由到同一个后端,但多个连接将实现负载平衡。kube proxy为每个后端配置iptables w/
-m statistic--mode random--probability{1/N}
,其中N是后端的数量。我现在很困,但我想我明白了。我最不想问的是——iptables实现总是路由到同一个后端,直到重新配置,对吗?一个连接将路由到同一个后端,但多个连接将实现负载平衡。kube proxy为每个后端配置iptables w/
-m statistic--mode random--probability{1/N}
,其中N是后端的数量。