如何在负载均衡期间检查哪个 Kubernetes pod 正在响应?

How to check which Kubernetes pod is responding during load balancing?

我在 kubernetes 上部署了一个简单的网络应用程序。

我有两个 Pods 和他们的服务。 请求应在两个 pods 之间平衡。我该如何验证?

也许有一些工具或命令? 当我点击(发出请求)我的应用程序时,我想在控制台中看到类似这样的内容:

request on pod1
request on pod2
request on pod2

如果您的应用程序在请求期间记录某些内容,您可以从两个容器跟踪日志,您可以使用 stern

kubectl logs pods-1 -f

执行此操作的一种方法是在将响应从 pod 发送回客户端之前将 podname 或 podip 或主机名或其他标识符添加到 HTTP header。然后在客户端,您可以检查 header 以检查哪个 pod 响应了该特定请求。

例如,您可以在您的 pod 中定义 env,如下所示

env:
  - name: MY_POD_NAME
    valueFrom:
      fieldRef:
        fieldPath: metadata.name
  - name: MY_POD_IP
    valueFrom:
      fieldRef:
        fieldPath: status.podIP

然后你可以读取环境变量 MY_POD_NAMEMY_POD_IP,将它们添加到 http header,在日志中打印它们。