Kubernetes Nginx入口控制器就绪探针失败

时间:2020-09-14 21:25:04

标签: kubernetes nginx-ingress coredns

我正在尝试设置我的第一个Kubernetes集群,在使用nginx-ingress控制器之前,它似乎已经设置好。 这是我的集群信息: 节点:三个RHEL7和一个RHEL8节点 Master在RHEL7上运行 Kubernetes服务器版本:1.19.1 使用的网络:法兰绒 coredns运行正常。 在所有节点上都禁用了selinux和防火墙

这是我所有在pod系统中运行的pod pods running in kube-system

然后我按照以下页面上的说明安装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出现故障: running and failing pods

所有节点的设置方式完全相同,没有区别。 我是Kubernetes的新手,对它的内部知识也不了解。有人可以指出我如何调试和解决此问题吗?我真的很愿意从这样的问题中学习。

这是我配置RHEL7和RHEL8节点的方式

  1. 已安装的docker版本:19.03.12,内部版本48a66213fe
  2. 已禁用防火墙
  3. 禁用交换
  4. 已禁用SELinux
  5. 要使iptables能够查看桥接流量,请设置net.bridge.bridge-nf-call-ip6tables = 1和net.bridge.bridge-nf-call-iptables = 1
  6. 为Kubernetes集群中涉及的所有节点添加了主机条目,以便它们彼此之间可以找到对方而无需访问DNS
  7. 在/ etc / environment上为no_proxy添加了Kubernetes集群中所有节点的IP地址,以使其不影响公司代理
  8. 已验证的docker驱动程序为“ systemd”而不是“ cgroupfs”
  9. 重新启动服务器
  10. 按照kubernetes指南在以下位置安装kubectl,kubeadm,kubelet:https://kubernetes.io/docs/tasks/tools/install-kubectl/
  11. 启动并启用kubelet服务
  12. 通过执行以下操作初始化主服务器:
kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
  1. 应用节点选择器补丁进行混合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
  1. 应用法兰绒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

谢谢

1 个答案:

答案 0 :(得分:0)

根据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后端”。

这里最简单的解决方案是在支持的操作系统上重新安装该节点。