Kubernetes Ingress 是 Kubernetes 中用于管理 HTTP 和 HTTPS 外部访问的资源对象。它通过域名、路径和路由规则,把集群外部流量转发到集群内的 Service,再由 Service 分发到后端 Pod。简单说,Service 解决集群内访问,Ingress 解决 Web 服务如何从集群外访问。

为什么需要Ingress
如果每个服务都单独暴露 NodePort 或 LoadBalancer,端口、证书、域名和安全策略会很快失控。Ingress 的价值是把外部入口统一管理起来,让多个服务共享标准化的 HTTP/HTTPS 访问层。
Ingress 通常解决这些问题:
- 根据域名把流量转到不同服务
- 根据路径把流量转到不同后端
- 统一配置 TLS 证书
- 减少每个服务单独暴露的复杂度
- 为网关、安全和流量治理提供入口
Ingress和Ingress Controller的区别
Ingress 本身只是规则声明,真正执行转发的是 Ingress Controller。没有 Controller,Ingress 规则不会自动生效。常见 Controller 包括 NGINX Ingress Controller、Traefik、HAProxy,以及云厂商或企业平台提供的网关组件。
| 组件 | 作用 | 类比 |
|---|---|---|
| Ingress | 描述域名、路径和后端服务规则 | 路由配置单 |
| Ingress Controller | 监听规则并执行流量转发 | 网关执行器 |
| Service | 连接Ingress和后端Pod | 内部服务入口 |
| Pod | 实际处理业务请求 | 应用实例 |
Ingress如何和Service配合
Ingress 不直接把流量发给 Pod,而是把请求转给 Service。Service 再根据标签选择后端 Pod。这样后端 Pod 扩缩容、更新或重建时,Ingress 不需要知道每个 Pod 的变化。

企业使用Ingress要关注什么
域名和证书统一管理
生产环境通常需要 HTTPS。证书续期、域名绑定、TLS 策略都应统一管理,避免各团队自行维护导致过期或配置不一致。
路由规则冲突
多个团队共享入口时,路径和域名规则可能冲突。平台应提供规则校验和审批流程,避免一个服务覆盖另一个服务。
安全策略
Ingress 是外部流量入口,应结合认证、访问控制、限流、防护和审计能力。对于高安全场景,Ingress 往往还要和 API 网关、WAF 或零信任体系配合。
可观测性
入口层应能看到请求量、错误率、延迟、后端状态和证书状态。否则线上访问异常时,很难判断问题在网关、Service 还是应用。
Ingress、API网关和服务网格怎么区分
Ingress 主要解决基础外部 HTTP/HTTPS 路由;API 网关更强调认证、鉴权、限流、开放 API 管理;服务网格更强调服务间流量治理、可观测和安全通信。三者可以组合使用,不是简单替代关系。
常见排查清单
如果外部访问失败,可以按顺序检查:
- DNS 是否解析到正确入口地址。
- Ingress Controller 是否正常运行。
- Ingress 规则域名和路径是否匹配。
- Service 是否存在可用后端 Endpoint。
- Pod 是否 Ready。
- TLS 证书是否有效。
- 网络策略或防火墙是否限制访问。
Ingress规则设计要避免入口失控
Ingress 是外部访问入口,一旦规则缺少治理,很容易出现域名冲突、路径覆盖、证书过期、入口暴露过多等问题。企业不应让每个团队随意创建对外入口,而应建立统一域名、证书、路由和安全审批机制。
生产 Ingress 建议关注:
- 域名归属清晰:每个域名对应负责人、环境和业务系统。
- 路径规则可审查:避免多个团队配置相同路径或模糊匹配规则。
- TLS证书统一管理:证书过期会直接影响线上访问,应有自动续期和告警。
- 入口安全策略一致:认证、限流、黑白名单、WAF 或网关策略要统一。
- 访问日志可追踪:入口层日志是排查 4xx、5xx 和延迟问题的重要依据。
Ingress 是流量进入集群的门面,治理质量直接影响线上安全和用户体验。
Ingress与企业网关如何协同
在小规模场景中,Ingress 可以承担基础 HTTP 路由;在企业级场景中,入口通常会进一步接入 API 网关、WAF、服务网格或零信任访问能力。Ingress 更偏 Kubernetes 内部路由声明,网关更偏统一安全、认证、限流和开放 API 管理。
因此,企业不必把 Ingress 和 API 网关看成二选一。更合理的做法是:Ingress 管理集群内路由,网关承担企业入口治理,二者通过统一平台协同。
结语
Kubernetes Ingress 是把集群内服务安全、稳定地暴露给外部用户的重要入口。企业使用 Ingress 时,不应只关注路由是否可用,还要统一管理域名、证书、安全策略、访问审计和可观测能力。
FAQ
Ingress可以暴露TCP服务吗?
Ingress 原生主要面向 HTTP 和 HTTPS。TCP、UDP 服务通常需要 LoadBalancer、NodePort、网关扩展或特定 Controller 支持。
Ingress一定需要Ingress Controller吗?
需要。Ingress 只是规则声明,必须有对应 Controller 执行转发和配置下发。
Ingress能替代API网关吗?
基础路由场景可以,但如果需要认证、限流、API 生命周期管理和开放平台能力,仍建议使用 API 网关或企业级入口治理方案。
为什么Ingress规则配置了还是访问不到?
常见原因包括 Controller 未安装、域名不匹配、Service 端口错误、后端 Pod 未 Ready、证书错误或网络策略限制。
转载请注明出处:https://www.cloudnative-tech.com/p/7271/