如何解决Kubernetes Nginx入口控制器就绪探针失败
我正在尝试设置我的第一个Kubernetes集群,在使用nginx-ingress控制器之前,它似乎已经设置好。 这是我的集群信息: 节点:三个RHEL7和一个RHEL8节点 Master在RHEL7上运行 Kubernetes服务器版本:1.19.1 使用的网络:法兰绒 coredns运行正常。 在所有节点上都禁用了selinux和防火墙
然后我按照以下页面上的说明安装nginx入口控制器:https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-manifests/
我决定使用守护程序集,而不是部署,因为我的kubernetes集群中将只运行几个节点。
按照说明进行操作后,我的RHEL8上的Pod经常出现以下错误:
就绪探针失败:获取“ http://10.244.3.2:8081/nginx-ready”:拨号 tcp 10.244.3.2:8081:connect:连接被拒绝退回重启 失败的容器
以下是屏幕截图,显示RHEL7 Pod正常工作并且RHEL8出现故障:
所有节点的设置方式完全相同,没有区别。 我是Kubernetes的新手,对它的内部知识也不了解。有人可以指出我如何调试和解决此问题吗?我真的很愿意从这样的问题中学习。
这是我配置RHEL7和RHEL8节点的方式
- 已安装的docker版本:19.03.12,内部版本48a66213fe
- 已禁用防火墙
- 禁用交换
- 已禁用SELinux
- 要使iptables能够查看桥接流量,请设置net.bridge.bridge-nf-call-ip6tables = 1和net.bridge.bridge-nf-call-iptables = 1
- 为Kubernetes集群中涉及的所有节点添加了主机条目,以便它们彼此之间可以找到对方而无需访问DNS
- 在/ etc / environment上为no_proxy添加了Kubernetes集群中所有节点的IP地址,以使其不影响公司代理
- 已验证的docker驱动程序为“ systemd”而不是“ cgroupfs”
- 重新启动服务器
- 按照kubernetes指南在以下位置安装kubectl,kubeadm,kubelet:https://kubernetes.io/docs/tasks/tools/install-kubectl/
- 启动并启用kubelet服务
- 通过执行以下操作初始化主服务器:
kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
- 应用节点选择器补丁进行混合OS调度
wget https://raw.githubusercontent.com/Microsoft/SDN/master/Kubernetes/flannel/l2bridge/manifests/node-selector-patch.yml
kubectl patch ds/kube-proxy --patch "$(cat node-selector-patch.yml)" -n=kube-system
- 应用法兰绒CNI
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
将kube-flannel.yml的net-conf.json部分修改为“ host-gw”类型
kubectl apply -f kube-flannel.yml
应用节点选择器补丁
kubectl patch ds/kube-flannel-ds-amd64 --patch "$(cat node-selector-patch.yml)" -n=kube-system
谢谢
解决方法
根据kubernetes文档,受支持的主机操作系统列表如下:
- Ubuntu 16.04 +
- Debian 9 +
- CentOS 7
- 红帽企业Linux(RHEL)7
- Fedora 25 +
- HypriotOS v1.0.1 +
- Flatcar Container Linux(已测试2512.3.0)
此article提到RHEL 8上存在网络问题:
(2020/02/11更新:安装后,我一直面临着pod网络问题,就像已部署的pod无法访问外部网络一样 或部署在不同工人中的吊舱无法相互ping通 即使我可以通过查看所有节点(主节点,worker1和worker2)都已准备就绪 kubectl获取节点。通过Kubernetes.io官方网站检查后,我发现nfstables后端与 当前的kubeadm软件包。请参考“ 确保 iptables工具不使用nfstables后端”。
这里最简单的解决方案是在支持的操作系统上重新安装该节点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。