目录
关于 nginx: [emerg] socket() [::]:8080 failed (97: Address family not supported by protocol) 问题
1、把容器中 nginx 的配置文件取出到本地,删除文件有有关[::]的配置行
关于 nginx: [emerg] socket() [::]:8080 failed (97: Address family not supported by protocol) 问题
在用 helm 安装 zabbix-server 和 zabbix-web 的时候,对于 zabbix-web-nginx-pgsql 这个镜像启动出了一些问题,一直有如下报错
describe显示
logs 显示
nginx: [emerg] socket() [::]:8080 failed (97: Address family not supported by protocol)
解决过程:
先是去它的镜像页(https://hub.docker.com/r/zabbix/zabbix-web-nginx-pgsql)找到了它的项目github的地址 https://github.com/zabbix/zabbix-docker
在 issues 这里我搜索 nginx 8080 发现有人也遇到了类似的问题
有个回答是这样的:
大致问题应该就是nginx的配置有问题,文件中有 ::80这种配置,但是本地网络不支持ipv6,所以需要重新从 github(或者直接从pod/容器) 中复制配置文件并在原始配置上删除类似 [::]8080的这些配置,然后使用卷重新挂载
大致过程如下:
1、把容器中 nginx 的配置文件取出到本地,删除文件有有关[::]的配置行
kubectl cp zabbix-zabbix-web-89c5b8f54-k9n5g:/etc/zabbix/nginx.conf nginx.conf
kubectl cp zabbix-zabbix-web-89c5b8f54-k9n5g:/etc/zabbix/nginx_ssl.conf nginx_ssl.conf
vim nginx.conf
vim nginx_ssl.conf
2、基于这两个文件创建 configmap
kubectl create configmap zabbix-zabbix-web-nginx --from-file=nginx.conf --from-file=nginx_ssl.conf -n mn
创建好了之后,修改deployment zabbix-zabbix-web 的 yaml 文件,把这个configmap挂载到pod里去,挂载路径和从pod里copy的路径一致
3、把configmap挂载到pod中
可以参考官方文档根据自己的配置修改:Configure a Pod to Use a ConfigMap | Kubernetes
我修改的大致如下,可以只需要添加一个 nginx.conf ,另一个ssl配置应该可能没有用到,nginx没去加载。
kubectl edit deploy zabbix-zabbix-web -n mn
保存自动启动之后就可以看到 Pod 已经变成 Runnning 状态了
然后做一个端口映射,就可以访问 zabbix 的 web 端了