ingress-controller编译踩坑


坑一

问题:authbind 执行失败

解决方法:在nginx基础镜像中安装authbind,这个在新的版本中已经废弃了。

坑二

故障现象:权限问题,bind 80失败

问题分析:
出现这种情况,通常的排查思路:

  1. 查看启动ingress用户的权限,是否可以使用
  2. 查看80端口是否被其他进程占用
  3. Dockerfile中setcap 权限范围太小

我们遇到的便是第3种情况:
只设置了ingress-controller的权限,

还需要设置nginx的权限才行:

RUN setcap  cap_net_bind_service=+ep /usr/sbin/nginx
RUN setcap -v cap_net_bind_service=+ep /usr/sbin/nginx

RUN chown -R www-data.www-data /etc/nginx