【问题标题】:Kubernetes on GCEGCE 上的 Kubernetes
【发布时间】:2016-04-05 21:08:37
【问题描述】:

我正在尝试在 GCE 上设置 Kubernetes。我的问题是,假设 Kubernetes 中有 20 个集群的一部分,并且使用 LoadBalancer 类型部署了两个服务,每个服务的副本为 2。所以 K8S 基本上会在每个服务的两个不同的 minions 上放置 2 个 pod。我的问题是,其他没有运行任何 pod 的 minions 是否也会在链 KUBE-PORTALS-CONTAINER 和 KUBE-PORTALS-HOST 中添加这两个服务的 iptables 规则?至少这是我的观察,但我想确认这是否正是 Kubernetes 在 GCE 上的工作方式,或者这就是 K8S 的行为方式,无论其部署在何处。任何服务都应该可以从任何 minion 访问的原因,无论 minion 是否是该服务的一部分?让我知道这个问题是否有更好的社区?

【问题讨论】:

    标签: google-compute-engine kubernetes


    【解决方案1】:

    其他没有运行任何 pod 的 minions 是否也会在链 KUBE-PORTALS-CONTAINER 和 KUBE-PORTALS-HOST 中获得 iptables 规则来添加这两个服务?

    是的。负载均衡器可以将外部流量转发到集群中的任何节点,因此每个节点都需要能够接收服务的流量并将其转发到适当的 Pod。

    我想确认这是 Kubernetes 在 GCE 上的工作方式,还是 K8S 的行为方式与部署位置无关。

    无论 Kubernetes 部署在哪里,集群中服务的 iptables 规则都是相同的。根据您部署集群的位置(例如,在 AWS 上,您将服务创建为 NodePort 类型而不是 LoadBalancer 类型),使服务可从外部访问略有不同,因此外部化服务的 iptables 规则可能会有所不同。

    【讨论】:

    • 谢谢罗伯特。我对此感到有些困惑。同意如果负载均衡器被编程为将流量转发到 Kubernetes 集群中的任何节点,那么 K8S 集群中的任何节点都应该能够转发集群中运行的任何服务的流量。但在一个稍微好一点的世界里,如果我的负载均衡器将流量转发到运行至少一个 pod 的节点,这似乎是额外的跃点。我知道构建这种负载均衡器会复制 kube-proxy 已经做的一些事情。是否有配置来控制 iptables 规则是否在该 pod 运行的节点上继续运行?
    • 是的,这种配置有时会导致额外的跃点。 AFAIK 没有任何方法可以控制 iptables 规则以减少额外的跃点。
    猜你喜欢
    • 1970-01-01
    • 2018-03-28
    • 2017-11-19
    • 2023-03-30
    • 1970-01-01
    • 2018-08-08
    • 2023-03-13
    • 1970-01-01
    • 2017-11-23
    相关资源
    最近更新 更多