我目前正在学习Kubernetes。尽管抽象很棒,但我想了解Ingress设置背后的实际情况。
在云环境中,并使用nginx入口控制器,从负载均衡器到Pod的外部请求之后,这是我正在发生的事情:
请求到达负载均衡器,并使用某种均衡算法选择一个入口控制器。入口控制器的许多实例都可能在弹性生产环境中运行。
入口控制器(在本例中为nginx)使用入口服务公开的规则来选择节点端口,并选择要路由到的特定节点。 nginx在这里进行任何负载平衡吗?
节点上的kubelet收到此请求。根据设置(iptables与ipvs),此请求将得到进一步的负载平衡,并且使用clusterip将选择要路由到的特定容器。这个Pod可以存在于集群中任何地方,在与kubelet路由不同的节点上吗?
然后将请求转发到特定的容器和容器。
这种理解正确吗?
答案 0 :(得分:0)
您应该查看有关Kubernetes Ingress with Nginx Example的本指南。尤其是 Kubernetes Ingress与LoadBalancer与NodePort 部分。那里的例子应该描述它如何进行。这里的线索是K8S SVC NodePort如何工作。您还应该查看此guide。
如果您还不是Kubernetes的新手,我强烈建议您熟悉官方文档
请告诉我是否有帮助。
答案 1 :(得分:0)
我终于找到了一个由三部分组成的文章,其中有足够的细节来揭开网络在Kubernetes中的工作方式。
https://medium.com/google-cloud/understanding-kubernetes-networking-pods-7117dd28727