Kubernetes Ingress 实战:域名路由、TLS 证书与 502/404 排查
Kubernetes Ingress 实战:域名路由、TLS 证书与 502/404 排查服务部署进 K8s 后,第一个绕不开的问题是:外面怎么访问?给每个 Service 开一个type: LoadBalancer太贵,NodePort端口又丑又难记。Ingress 就是标准答案——一个入口,按域名和路径把流量分发到不同 Service,顺带把 TLS 证书也统一收口。但 Ingress 也是新手翻车重灾区:配好了访问却 404,或者一直 502。这篇从最小可用配置讲起,把域名路由、TLS、以及最常见的两类报错排查讲清楚。前置:Ingress 资源 ≠ Ingress Controller这是第一个概念坑。你写的IngressYAML 只是一份「路由规则声明」,它本身不干活。真正接收流量、执行规则的是Ingress Controller(一个跑在集群里的 Pod,通常是 Nginx、Traefik 或云厂商的实现)。没装 Controller,你的 Ingress 资源就是一张贴在墙上没人看的通知。装最常用的 ingress-nginx:# 用官方清单一键装,会创建 ingress-nginx 命名空间和 controllerkubectl apply-fhttps://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.11.2/deploy/static/provider/cloud/deploy.yaml# 确认 controller Pod 起来了,并拿到对外 IPkubectl get pods-ningress-nginx kubectl get svc-ningress-nginx ingress-nginx-controller最后那个 svc 的EXTERNAL-IP就是集群入口 IP,把你的域名 A 记录解析到它。最小可用:按域名路由到 Service假设有两个服务web-svc(80) 和api-svc(8080),想让example.com走前端、api.example.com走后端:apiVersion:networking.k8s.io/v1kind:Ingressmetadata:name:main-ingressannotations:nginx.ingress.kubernetes.io/rewrite-target:/spec:ingressClassName:nginx# 指定用哪个 controller,别漏rules:-host:example.comhttp:paths:-path:/pathType:Prefixbackend:service:name:web-svcport:number:80-host:api.example.comhttp:paths:-path:/pathType:Prefixbackend:service:name:api-svcport:number:8080几个必须注意的点:ingressClassName: nginx不能漏。多个 controller 共存时,漏了会导致没有 controller 认领这条规则,访问直接 404。pathType有Prefix(前缀匹配)和Exact(精确匹配)。大多数场景用Prefix。service.port.number是Service 的端口,不是 Pod 容器端口。这俩经常配错。应用后验证:kubectl get ingress main-ingress# 直接指定 Host 头测试,绕过 DNScurl-HHost: api.example.comhttp://EXTERNAL-IP/health加上 HTTPS:TLS 证书收口Ingress 的一大价值是统一终结 TLS,后端 Service 只跑明文 HTTP。先把证书和私钥存成 Secret:kubectl create secret tls example-tls\--certfullchain.pem--keyprivkey.pem然后在 Ingress 里引用它:spec:ingressClassName:nginxtls:-hosts:-example.com-api.example.comsecretName:example-tls# 引用上面创建的 Secretrules:# ... rules 同上tls.hosts里的域名必须和证书里的 CN/SAN 匹配,也要和rules.host对上。配好后 ingress-nginx 默认会把 HTTP 301 跳转到 HTTPS。生产环境别手动管证书,用 cert-manager 自动签发和续期 Let’s Encrypt 证书,加个 annotation 就行:metadata:annotations:cert-manager.io/cluster-issuer:letsencrypt-prod排查一:访问 404 Not Foundnginx 返回 404(注意看响应头Server: nginx,确认是 controller 返回的而非后端),常见原因按概率排:ingressClassName漏了或写错——没 controller 认领。kubectl describe ingress看有没有Successfully synced事件。Host 不匹配——请求的域名和rules.host对不上。用curl -H Host: ...显式指定测试。path/pathType 不匹配——比如pathType: Exact配了/但你访问/foo。# 直接看 controller 日志,404 会打出它匹配到哪条规则(或没匹配到)kubectl logs-ningress-nginx-lapp.kubernetes.io/nameingress-nginx--tail50排查二:一直 502 Bad Gateway502 意味着 controller 找到了规则、但连不上后端。这几乎总是 Service 到 Pod 这一段的问题,而不是 Ingress 本身:# 1. Service 有没有选中 Pod?ENDPOINTS 为空就是标签选错了kubectl get endpoints api-svc# 若 ENDPOINTS 是 none,说明 Service 的 selector 没匹配到任何 Pod# 2. Service 端口和容器端口对得上吗?kubectl describe svc api-svc# 3. Pod 本身健康吗?kubectl get pods-lappapi最高频的 502 根因就一个:Service 的selector和 Pod 的labels不一致,导致ENDPOINTS为空,Ingress 转发到一个没有后端的 Service。改对标签,endpoints立刻就有值了。另一个常见 502:后端是 HTTPS 但没告诉 nginx。若 Service 后面是 HTTPS,要加 annotation:nginx.ingress.kubernetes.io/backend-protocol:HTTPS小结Ingress 资源只是路由声明,必须先装Ingress Controller才生效。写 Ingress 三件套别漏:ingressClassName、正确的host、指向Service 端口的 backend。TLS 用kubectl create secret tls存证书再在spec.tls引用;生产用 cert-manager 自动续期。404 看 Ingress 层(class/host/path 匹配),502 看后端(先查kubectl get endpoints是不是空的)。一句话记忆点:404 是「规则没匹配上」,502 是「匹配上了但后端连不通」,先分清是哪一层,排查方向立刻收敛。

相关新闻

AI设计效率停滞期诊断手册(含12项量化指标仪表盘):超76%团队在第3周即触发衰退预警

AI设计效率停滞期诊断手册(含12项量化指标仪表盘):超76%团队在第3周即触发衰退预警

更多请点击: https://kaifayun.com 第一章:AI设计效率停滞期的本质认知与阶段定位 AI设计效率停滞期并非技术退步的征兆,而是系统性能力边界与人类认知范式之间出现阶段性错配的客观表征。当模型参数规模、训练数据量与算力投入持续增长&am…

2026/8/23 22:47:12 阅读更多 →
5分钟掌握OBS屏幕实时标注:让你的直播教学效率翻倍

5分钟掌握OBS屏幕实时标注:让你的直播教学效率翻倍

5分钟掌握OBS屏幕实时标注:让你的直播教学效率翻倍 【免费下载链接】obs-studio OBS Studio - Free and open source software for live streaming and screen recording 项目地址: https://gitcode.com/GitHub_Trending/ob/obs-studio OBS Studio作为业界领…

2026/8/23 22:47:06 阅读更多 →
Go 用 errgroup 管理并发子任务:错误收敛、取消传播与限流

Go 用 errgroup 管理并发子任务:错误收敛、取消传播与限流

Go 用 errgroup 管理并发子任务:错误收敛、取消传播与限流 并发拉一批数据,你大概率写过这样的代码:开五个 goroutine 各自请求一个接口,用 sync.WaitGroup 等它们全部结束。跑起来没问题,直到有一天某个接口挂了——其他四个还在傻等,错误也没人收,日志里只留下一条超时。更糟…

2026/8/23 23:42:15 阅读更多 →

最新新闻

从浮栅晶体管到3D NAND:深入解析SSD闪存颗粒的工作原理与选型指南

从浮栅晶体管到3D NAND:深入解析SSD闪存颗粒的工作原理与选型指南

1. 从“黑盒”到“白盒”:为什么我们需要了解SSD与闪存颗粒如果你最近给电脑升级或者新装了一台机器,大概率会听到一个建议:“一定要上固态硬盘(SSD)”。确实,从开机速度到游戏加载,再到日常的文…

2026/8/24 5:15:47 阅读更多 →
KMP算法本质:手算next数组与最长公共前后缀

KMP算法本质:手算next数组与最长公共前后缀

1. 为什么KMP不是“背公式”,而是必须亲手推演的思维训练你翻过王道数据结构,抄过next数组的递推代码,期末考前默写过“j next[j]”那行——但当面试官突然问:“如果模式串是ababababca,第7位失配时,为什么…

2026/8/24 5:15:47 阅读更多 →
使用CANdb++从零构建DBC文件:汽车CAN总线通信数据字典实战指南

使用CANdb++从零构建DBC文件:汽车CAN总线通信数据字典实战指南

1. 项目概述:从零到一构建DBC文件在汽车电子开发领域,尤其是涉及CAN总线通信的项目中,DBC文件就像一份所有ECU(电子控制单元)都必须遵守的“通信宪法”。它定义了总线上流动的每一条报文(Message&#xff0…

2026/8/24 5:15:47 阅读更多 →
从单目视频到可驱动数字人:4D Gaussian Splatting实战指南

从单目视频到可驱动数字人:4D Gaussian Splatting实战指南

最近在尝试从单目视频生成动态数字人时,发现很多方案要么对设备要求高(如多摄像头阵列),要么生成效果僵硬、缺乏细节。直到接触到 4D Gaussian Splatting (4DGS) 技术,它通过一种创新的显式表示方法,仅需…

2026/8/24 5:15:47 阅读更多 →
重心坐标:从三角形插值到3D渲染的核心数学工具

重心坐标:从三角形插值到3D渲染的核心数学工具

1. 从三角形插值说起:为什么需要重心坐标?如果你接触过3D图形渲染、物理模拟或者游戏开发,大概率听过“插值”这个词。纹理坐标、顶点颜色、法线向量,这些附着在模型顶点上的数据,在三角形内部每个像素点上究竟应该是多…

2026/8/24 5:15:47 阅读更多 →
AI测试工程师面试核心考察点与实战解析

AI测试工程师面试核心考察点与实战解析

1. AI测试工程师面试核心考察维度在AI测试领域,面试官通常会从技术基础、测试思维和项目经验三个维度进行考察。不同于传统软件测试,AI测试需要额外关注算法理解、数据质量评估和模型性能监控等专业领域。1.1 技术基础能力考察点机器学习基础概念是必考内…

2026/8/24 5:14:47 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →