【问题标题】:How is a request routed and load balanced in Kubernetes using Ingress Controllers?如何使用 Ingress Controller 在 Kubernetes 中路由请求和平衡负载?
【发布时间】:2019-12-17 01:23:25
【问题描述】:

我目前正在学习 Kubernetes。虽然抽象很棒,但我想了解设置 Ingress 后实际发生的事情。

在云环境中并使用 nginx 入口控制器,遵循从负载均衡器到 pod 的外部请求,这就是我认为正在发生的事情:

  1. 请求到达负载平衡器,并使用某种平衡算法选择入口控制器。入口控制器的许多实例可能会在弹性生产环境中运行。

  2. 入口控制器(本例中为 nginx)使用入口服务公开的规则来选择节点端口,选择要路由到的特定节点。这里的 nginx 有负载均衡吗?

  3. 节点上的 kubelet 接收到这个请求。根据设置(iptables 与 ipvs),此请求将进一步负载平衡,并使用 clusterip 选择特定的 pod 进行路由。这个 pod 可以存在于集群上的任何地方,在与 kubelet 路由不同的节点上吗?

  4. 然后将请求转发到特定的 pod 和容器。

这种理解正确吗?

【问题讨论】:

    标签: nginx kubernetes


    【解决方案1】:

    您应该查看有关Kubernetes Ingress with Nginx Example 的指南。尤其是 Kubernetes Ingress vs LoadBalancer vs NodePort 部分。那里的例子应该描述它是如何进行的。这里的线索是 K8S SVC NodePort 是如何工作的。你也应该看看这个guide

    另外,如果您是 Kubernetes 新手,我强烈建议您熟悉官方文档

    如果有帮助,请告诉我。

    【讨论】:

      【解决方案2】:

      我终于找到了一篇由 3 部分组成的文章,其中详细介绍了 Kubernetes 中网络的工作原理。

      https://medium.com/google-cloud/understanding-kubernetes-networking-pods-7117dd28727

      【讨论】:

        猜你喜欢
        • 2020-05-26
        • 1970-01-01
        • 2016-01-27
        • 1970-01-01
        • 2021-12-24
        • 1970-01-01
        • 2018-02-23
        • 2017-04-01
        • 1970-01-01
        相关资源
        最近更新 更多