【问题标题】:is clusterIP accessible from other node?clusterIP 可以从其他节点访问吗?
【发布时间】:2019-01-23 07:32:31
【问题描述】:

看到有人说clusterIP不能被集群外的外部机器访问。

但我不确定这里的集群是什么意思,是指 Pod 集群还是节点集群。

终极问题,clusterIP(无节点端口)可以被其他节点访问吗?

谢谢

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    是的,集群中的节点可以访问 ClusterIP 服务。他们的部分目的是在 Pod 的副本之间进行负载平衡(可能位于不同的节点中),这样流量就不会全部流向特定的 Pod。见Clarify Ingress load balancer

    ClusterIP 服务实际上并不存在于任何单个节点上,而是存在于每个节点上。每个节点上的 kube-proxy 通过更新每个节点的 iptables 来确保跨实例的负载平衡

    【讨论】:

    • 如果我们把外部负载均衡器放到d图中,那么会有2次负载均衡过程吗? LB 中的第一个,然后 kube-proxy 中的第二个?假设我们使用 nodePort。提前谢谢。
    • 可以,但目的不同。服务在 Pod 之间进行负载平衡。外部负载平衡器将跨节点进行负载平衡。跨节点的 Pod 分布可能不均匀。那么在某些 Pod 上,仅通过 Node 进行负载平衡将是不公平的。因此,默认情况下,k8s 服务将尝试确保每个 Pod 仍然获得其公平份额。但是,如果您不想要双重负载平衡,那么您可以使用 externalTrafficPolicy - kubernetes.io/docs/tasks/access-application-cluster/… 将流量保持在节点内部
    • 一个很好的想法是外部负载平衡器负载平衡外部进入集群。然后,这些服务在集群中作为彼此副本的 Pod 之间进行负载平衡。如果 Pod 大多恰好在同一个节点上,那么它们仍然会获得平均份额(至少在默认行为下)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 2012-10-07
    相关资源
    最近更新 更多