k8s的Ingress配置问题

1、问题发生

因node的两个节点故障,删除该节点,并重新加入新的节点,集群恢复正常后,发现之前配置的Ingress都无法访问。

解析域名配置的是coredns,将域名解析的地址还是原来的Node节点地址。

新加入的Node节点的IP地址没有变,但是域名就是无法访问。

2、排查

查看ingress-nginx的pod信息

发现ingress-nginx-controller只运行在一个节点上,并不是coredns解析的地址。

查看标签,

bash 复制代码
kubectl get nodes --show-labels | grep ingress=true

之所以目前只跑在一个节点上,是因为它被部署成了 DaemonSet,并且设置了 节点选择器(Node Selector)

bash 复制代码
NODE SELECTOR:  ingress=true

如何让 Ingress Controller 运行在多个节点上?

给多个节点打上 ingress=true 标签

bash 复制代码
kubectl label node k8s-node04 ingress=true
kubectl label node k8s-node05 ingress=true
kubectl label node k8s-node06 ingress=true

观察 DaemonSet 自动扩展

bash 复制代码
kubectl get pods -n ingress-nginx -o wide

看到每个打了标签的节点上都跑起了一个 Ingress Controller Pod。

再次访问域名就恢复正常了

相关推荐
垚垚学技术_聚焦云原生1 小时前
K8s OpenEBS LVM 动态存储 PVC Pending 排查记
云原生·容器·kubernetes
m0_6464299710 小时前
Docker 完整核心知识点总结(超通俗易懂版)
运维·docker·容器
我不是阵雨13 小时前
微服务幂等性深度解剖
微服务·云原生·架构
吴声子夜歌13 小时前
Docker入门与实战——实战案例(Web服务与应用)
docker·容器
a59865214 小时前
Docker云手机搭建挂机环境,外网远程访问完整实操
docker·容器·智能手机·云手机
郭老二15 小时前
【docker】使用阿里云的容器镜像服务(ACR)构建自己的容器仓库
阿里云·docker·容器
code_slave(码畜)16 小时前
微服务架构落地:消息队列架构设计(上篇)——异步解耦、削峰填谷,看懂业务事件流转本质
spring boot·spring cloud·微服务·云原生·架构
code_slave(码畜)19 小时前
微服务架构落地:消息队列架构设计(下篇)——消息堆积、死信治理与集群监控告警实战
spring boot·spring cloud·微服务·云原生·中间件·架构
灯澜忆梦20 小时前
【docker】#2 | 基础命令
docker·容器·eureka