nginx-ingress Helm部署--tcp-services-configmap参数不存在问题咨询
TCP/UDP端口转发配置方案
启动报错根因
你手动配置的启动参数前缀错误:tcp-services-configmap是长选项参数,必须以*双横杠--开头,你使用单横杠-*定义参数,导致控制器二进制无法识别该配置,所以启动失败。
正确配置方式
无需手动修改Deployment的容器启动参数,Ingress Nginx官方Helm Chart已预留专属配置字段,按以下步骤操作即可:
- 提前创建符合规范的TCP服务ConfigMap
ConfigMap键为对外暴露的端口号,值为命名空间/服务名:端口格式的服务引用,注意不可占用80、443两个控制器HTTP服务预留端口。 - 安装/升级Helm Release时传入TCP ConfigMap配置
直接通过values配置或--set参数指定即可,Chart会自动生成对应启动参数并挂载ConfigMap:
如果你习惯用# values.yaml 配置示例 controller: tcp: configMapNamespace: emoney-node name: tcp-services-configmap # 如需暴露UDP服务同理配置udp字段 # udp: # configMapNamespace: <你的命名空间> # name: <udp服务ConfigMap名称> service: # 必须在控制器Service中开放你要暴露的TCP/UDP端口,示例如下 ports: tcp: 1883: 1883 # 键是Service对外端口,值是ConfigMap中配置的端口--set参数传递配置,对应命令为:helm upgrade --install ingress-nginx ingress-nginx/ingress-nginx \ --set controller.tcp.configMapNamespace=emoney-node \ --set controller.tcp.name=tcp-services-configmap \ --set controller.service.ports.tcp.1883=1883
自定义容器启动参数方法
如果你有额外的自定义启动参数需求,可通过Chart预留的controller.extraArgs字段配置,无需手动编辑Deployment:
controller: extraArgs: # 字段名就是参数名,Chart会自动添加双横杠前缀并拼接参数值 tcp-services-configmap: emoney-node/tcp-services-configmap enable-ssl-passthrough: "true" # 其他自定义参数同理配置
内容的提问来源于stack exchange,提问作者Grant Zukel
相关产品推荐
相关产品推荐

