ingress-controller编译踩坑
坑一
问题:authbind 执行失败
解决方法:在nginx基础镜像中安装authbind,这个在新的版本中已经废弃了。
坑二
故障现象:权限问题,bind 80失败
问题分析:
出现这种情况,通常的排查思路:
- 查看启动ingress用户的权限,是否可以使用
- 查看80端口是否被其他进程占用
- 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