Nginx请求Kubernetes中的两个或更多节点

Ron*_*las 3 kubernetes

我想了解kubernetes背后的一些概念,所以我有以下几点:

  1. 具有2个节点的kubernetes集群
  2. 部署nginx有2个副本,所以我有2个POD.
  3. 在端口32134上公开nginx的服务,所以我可以访问每个节点:

    http:// node01:32134http:// node02:32134

那么,让我们怀疑:

  1. 做一个kubectl describe pod nginx-001我在node01下运行这个pod .对pod nginx-002执行相同的命令我也在node01下运行了这个pod .那么,如果我的pod只在一个节点下运行,我怎么能在两个URL(node01和node02)中获得HTTP 200?Node02不应该响应,因为没有运行任何nginx,对吧?

  2. 看着kubctl logs -f nginx-001我得到了所有访问请求的日志.奇怪的是:无论如果我点击http://node01或者http://node02我总是在nginx-001 POD中获取日志,其他pod(nginx-002)永远不会在日志中获取请求.好像ks8总是将所有请求重定向到nginx-001而忘记了另一个pod.

重要提示 我正在使用Digital Ocean Kubernetes服务

小智 6

1)这是kube-proxy进入的地方.Kube-proxy负责将您的请求路由到pod,而不管pod的部署位置.您可以拥有50个节点的群集.您可以部署10个副本nginx,只在1个节点上部署所有副本,并且将请求路由到服务的是kube-proxy的工作.

2)这基本上取决于你遇到的负载量.您可能是唯一一个点击nginx服务的人.所以它一直在向一个pod发送请求.Kubernetes服务可在一组服务器pod上实现负载平衡,允许客户端pod独立且持久地运行.