我试图了解kubernetes背后的一些概念,所以我有以下几点:
在端口32134上公开nginx的服务,因此我可以使用以下命令访问每个节点:
因此,让我们怀疑一下:
做一个kubectl describe pod nginx-001
我让这个吊舱在node01下运行。对pod nginx-002执行相同的命令,我也将此pod运行在node01下。因此,如果我的Pod仅在一个节点下运行,如何在两个URL(node01和node02)中获取HTTP 200?Node02不应该响应,因为没有任何Nginx在运行,对吗?
看kubctl logs -f nginx-001
我得到所有访问请求日志。奇怪的是:不管我打http://node01
还是http://node02
我总是在nginx-001 POD中获取日志,另一个Pod(nginx-002)永远不会在日志中获取请求。似乎ks8总是将所有请求都重定向到nginx-001,而忘记了另一个pod。
重要说明,我正在使用Digital Ocean Kubernetes服务
1)那是kube-proxy介入的地方。kube-proxy负责将您的请求路由到Pod,无论Pod部署在何处。您可能有50个节点的群集。您可能部署了10个副本nginx,所有副本仅部署在1个节点上,将请求路由到服务将是kube-proxy的工作。
2)这基本上取决于您遇到的负载。您可能是唯一使用nginx服务的人。因此,它将持续发送请求到一个pod。Kubernetes服务可在一组服务器Pod之间实现负载平衡,从而允许客户端Pod独立且持久地运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句