-
系统组件
coredns
报错:plugin/forward: no nameservers found
该组件是每个节点上运行一个实例,查看报错对应节点服务器的
/etc/resolv.conf
文件中是否配置nameserver
外网环境配置nameserver 114.114.114.114
即可。
需要注意两点:
该文件是在 docker 服务启动时加载进容器中使用,所以配置后需要重启 docker 服务;
修改该配置文件在重启服务器后可能会失效,和NetworkManager
有关。
-
系统组件
nginx-ingress-controller
启动失败,提示80
端口被占用该组件用于负载均衡,其需要监听
80
和443
端口。
由于我的 rancher 在 k8s 集群上通过 docker 启动,映射端口也是80
和443
,所以就冲突了。# rancher 启动命令 docker run -d --privileged --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest
解决方法:
- 删除当前的 rancher 容器重新启动
# 强制删除 rancher 容器 docker rm -f xxx # 重新运行 rancher 容器,修改端口号映射 docker run -d --privileged --restart=unless-stopped -p 8080:80 -p 8443:443 rancher/rancher:latest
- 若不想删除 rancher 重新部署,需要修改容器配置文件
# 获取 rancher 容器 Hash 前缀 docker ps | grep 443 # 根据 Hash 前缀找到容器目录 ls /var/lib/docker/containers/ | grep 640d3990c2ea # 修改配置文件中的 80 和 443 映射端口号并保存 vi /var/lib/docker/containers/640d3990c2eaa98a50d619065c1bb58300d8df00dc6e873c57e375fe16f6d250/hostconfig.json
- 删除当前的 rancher 容器重新启动