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

NGINX Ingress Controller启动报错:-tcp-services-configmap未定义

问题解决:NGINX Ingress控制器启动参数报错flag provided but not defined: -tcp-services-configmap

问题根源

你使用的是NGINX官方维护的Ingress控制器镜像(nginx/nginx-ingress:3.2.1),但参考的是Kubernetes社区维护的Ingress Nginx项目文档,两者的启动参数、配置逻辑完全不兼容,所以出现了参数未定义的报错。

正确配置TCP服务的步骤(针对NGINX官方Ingress控制器)

1. 创建TCP转发规则的ConfigMap

先定义需要转发的TCP端口与后端服务的映射,比如创建名为tcpservercm的ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: tcpservercm
  namespace: default
data:
  # 格式:"监听端口": "命名空间/服务名:服务端口"
  "8080": "default/your-tcp-service:9000"

执行命令应用:

kubectl apply -f <configmap-file.yaml>

2. 通过Helm配置加载TCP ConfigMap

不需要手动添加启动参数,直接修改Helm的values配置即可:

  • 若使用values.yaml文件,添加以下配置:
    tcp:
      configMap: "default/tcpservercm"
    # 同时需要在Service中暴露对应的TCP端口
    service:
      tcpPorts:
        - port: 8080
          targetPort: 8080
    
  • 若直接用命令行升级Helm release:
    helm upgrade <your-release-name> nginx-stable/nginx-ingress \
      --set tcp.configMap=default/tcpservercm \
      --set service.tcpPorts[0].port=8080 \
      --set service.tcpPorts[0].targetPort=8080
    

3. 验证

应用配置后,等待Pod重启完成,检查Pod状态:

kubectl get pods -n <your-ingress-namespace>

确认Pod正常运行后,即可通过Ingress Service的8080端口访问后端TCP服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 22:15:03