HAProxy-Ingress重启后缺失TCP服务段问题求助
HAProxy-Ingress重启后TCP服务配置缺失问题排查请求
环境信息
- Kubernetes版本:1.19
- HAProxy-Ingress版本:v0.13.6(对应HAProxy版本2.3.17-d1c9119,发布于2022/01/11),此前版本也存在相同问题
问题现象
当HAProxy Pod因存活探针触发、节点故障等原因重启后,/etc/haproxy/haproxy.cfg文件中缺失TCP服务配置段,原本应生成的配置内容如下:
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # TCP SERVICES (legacy, via configmap) # # # listen _tcp_namespace_project-haproxy-stats_111 bind :111 mode tcp log-format "[%t] %ci:%cp %si:%sp %bi:%bp %fi:%fp %ft %b/%s %Tw/%Tc/%Tt %B %ts %ac/%fc/%bc/%sc/%rc %sq/%bq" option log-health-checks option tcp-check tcp-check send "AAA" tcp-check expect string "BBB" # Recognized options podMaxConn: 2 default-server check port 111 inter 2s maxconn 2 observe layer4 error-limit 1 on-error mark-down server-template project-worker.namespace- 3 project-worker.namespace.svc.cluster.local:111 resolvers kubernetes resolve-prefer ipv4 init-addr none
复现方式
在Pod内执行reboot命令,多次尝试可复现该问题
临时解决办法
- 执行
kubectl rollout restart deployment <haproxy-ingress-deployment-name> - 修改TCP服务对应的ConfigMap(增删改任意内容),触发HAProxy重新加载配置后恢复正常
- 手动执行
/haproxy-reload.sh无法解决该问题
异常与健康实例的进程参数差异
异常实例进程参数
/ # ps axjf | more PID USER TIME COMMAND ... 34 root 0:00 haproxy -f /etc/haproxy -p /var/run/haproxy/haproxy.pid -D -sf ...
健康实例进程参数
/ # ps axjf | more PID USER TIME COMMAND ... 43 root 0:00 haproxy -f /etc/haproxy -p /var/run/haproxy/haproxy.pid -D -sf 31 -x ...
恳请协助排查该异常原因。
内容的提问来源于stack exchange,提问作者Yegor
相关产品推荐
相关产品推荐

