You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GKE中MongoDB自动扩缩容Pod未被Service调用问题求助

问题:GKE中MongoDB HPA扩容Pod无法被Service调用

背景与环境

我正尝试在GKE(Google Kubernetes Engine)中部署MongoDB,供仅需读取操作的微服务使用。为分摊负载,基于包含原有单容器MongoDB数据的镜像部署了多Pod,并配置HPA(水平Pod自动扩缩容)应对流量波动。

自定义MongoDB镜像的Dockerfile如下:

FROM mongo:latest
EXPOSE 27017
COPY /mdb/ /data/db

核心问题现象

  • 当CPU利用率超过阈值时,HPA能成功创建新Pod,但这些新Pod并未被对应Deployment的Service调用
  • 新Pod的本地IP已出现在Service端点列表中
  • 删除唯一正在工作的初始Pod后,自动扩缩容生成的其他Pod才被激活,性能得到提升,但后续新生成的Pod仍无法被调用

相关配置文件

MongoDB Deployment配置

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongodb-deployment
  labels:
    app: mongodb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mongodb
  template:
    metadata:
      labels:
        app: mongodb
    spec:
      containers:
      - name: mongodb
        image: "$my_mongodb_image_in_which_I_have_my_db"
        ports:
        - containerPort: 27017
        resources:
          requests:
            memory: "1800Mi"
            cpu: "3000m"

MongoDB Service配置

apiVersion: v1
kind: Service
metadata:
  name: mongodb-service
spec:
  type: LoadBalancer
  loadBalancerIP: $IP_reserved_for_this_service
  selector:
    app: mongodb
  ports:
    - protocol: TCP
      port: 80
      targetPort: 27017

客户端访问代码(集群内Pod通过pymongo访问)

def get_db(database: str):
    client = MongoClient(host="$IP_reserved_for_this_service",
                         port=80,
                         username="...",
                         password="...",
                         authSource="admin")
    return client.get_database(database)

请求帮助

我知道这种MongoDB使用和扩缩容方式可能不够合理,但作为初步尝试,希望解决该问题或了解其无法运行的原因。

内容的提问来源于stack exchange,提问作者JujuPat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 01:45:35