首页 > 解决方案 > Kubernetes 总是将请求转发到同一个 pod

问题描述

我有一个 Kubernetes 集群,有 1 个控制平面和 1 个工作人员,工作人员中有 3 个 pod。Type: NodePort 的 Pod 和服务在同一个节点上。我期待该服务对 Pod 之间的请求进行负载平衡,但看起来所有请求总是只转发到一个 Pod。

apiVersion: v1
kind: Service
metadata:
  name: web-svc
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30002
  selector:
    app: web
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-app
  labels:
    app: web
spec:
  selector:
    matchLabels:
      app: web
  replicas: 3
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - name: web-app
        image: webimage
        ports:
          - containerPort: 80
        imagePullPolicy: Never
        resources:
          limits:
            cpu: "0.5"
          requests:
            cpu: "0.5"
~

标签: kuberneteskind

解决方案


如果您的请求具有持久的 TCP 连接,这是预期的行为。尝试添加"connection":"close"您的 HTTP 标头。


推荐阅读