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

为何Flask应用未使用deployment.yaml指定的containerPort仍运行在5000端口?

问题分析

你的核心问题是Flask默认监听5000端口,虽然Kubernetes的Deployment和Service配置里指定了6000端口,但你没有修改Flask应用本身的监听端口,导致端口不匹配,最终Service无法正确转发流量。

解决方案

以下三种方法都能让Flask监听6000端口,可根据你的场景选择:

方法1:修改Flask代码指定端口

在代码里显式指定启动端口和监听地址(必须设为0.0.0.0,否则仅容器内部可访问):

from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/")
def index():
    return jsonify({"hey":"test6"})

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=6000)

修改后重新构建镜像并部署即可。

方法2:通过环境变量配置(推荐K8s场景)

无需修改代码,直接在Deployment的容器配置中添加Flask支持的环境变量,灵活控制端口:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mqttdemob
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mqttdemob
  strategy: {}
  template:
    metadata:
      labels:
        app: mqttdemob
    spec:
      containers:
      - image: ****/fluxdemo:main-584db7b6-1687862454 # {"$imagepolicy": "flux-system:mqttdemob"}
        name: app
        ports:
        - containerPort: 6000
        env:
        - name: FLASK_RUN_PORT
          value: "6000"
        - name: FLASK_RUN_HOST
          value: "0.0.0.0"

更新Deployment后,Flask会自动读取环境变量切换端口。

方法3:修改容器启动命令

如果镜像默认启动命令是flask run,可直接在Deployment里指定启动参数:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mqttdemob
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mqttdemob
  strategy: {}
  template:
    metadata:
      labels:
        app: mqttdemob
    spec:
      containers:
      - image: ****/fluxdemo:main-584db7b6-1687862454 # {"$imagepolicy": "flux-system:mqttdemob"}
        name: app
        ports:
        - containerPort: 6000
        command: ["flask"]
        args: ["run", "--host=0.0.0.0", "--port=6000"]
验证效果

重新部署后,执行以下命令确认端口监听状态:

kubectl exec <pod name> -- netstat -tulpn

若输出显示0.0.0.0:6000处于LISTEN状态,说明配置生效,此时Service的30400端口就能正常转发到Flask的6000端口了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:30:24