Skip to main content
 首页 » 编程设计

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

2025年05月04日257myhome

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

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

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

那么,让我们来谈谈我的疑惑:

  1. 执行 kubectl describe pod nginx-001 我让这个 pod 在 node01 下运行。对 pod nginx-002 执行相同的命令,我也让这个 pod 在 node01 下运行。因此,如果我的 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 服务

请您参考如下方法:

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

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