Ingress理解

1. 先看最终效果一句话总结

你最后执行的 curl http://www.testingress.com,背后发生的事是:

外部用户通过一个域名(www.testingress.com),直接访问到了集群内部的 Nginx 服务,而不需要知道任何节点 IP、NodePort 或 Service IP。

这就是 Ingress 最核心的价值:用统一的入口,优雅地对外暴露服务。


2. 没有 Ingress 之前,你是怎么访问的?

在之前的例子里,你要访问 Nginx 服务,只能用:

  • ClusterIP:80:只能在集群内部访问
  • NodeIP:NodePort:比如 192.168.30.131:30091,端口又长又难记,还依赖节点 IP
  • LoadBalancer IP:比如 192.168.30.240,但每个服务都要占一个 IP,成本高

痛点:每个服务都有自己的访问方式,管理起来一团乱麻。


3. 有了 Ingress 之后,一切变了

Ingress 给你提供了一个统一的 "大门":

  1. 统一入口:所有外部 HTTP/HTTPS 请求,都先打到 Ingress 控制器(Nginx)。
  2. 智能路由 :根据你定义的规则(域名、路径),把流量分发到不同的 Service。
    • www.testingress.com → ingressservice → Nginx Pod
    • 以后再加个 api.testingress.com → apiservice → API Pod,完全没问题
  3. 域名访问:用户只需要记住一个好听的域名,不用管复杂的 IP 和端口。

4. 用你的实验数据,把链路串起来看

我们把你实验里的关键信息串起来,效果就非常清晰了:

  1. 用户输入 :curl http://www.testingress.com
  2. DNS 解析 :本地 /etc/hosts 把 www.testingress.com 解析到 192.168.30.131(Ingress 控制器所在节点的 IP)
  3. 到达 Ingress 控制器 :请求进入节点 192.168.30.131,被 Nginx Ingress 控制器接收
  4. 匹配规则 :控制器发现请求的 Host 是 www.testingress.com,匹配到你定义的 Ingress 规则
  5. 转发到 Service :控制器把请求转发到 ingressservice(ClusterIP: 10.108.109.255:80)
  6. 到达 Pod:Service 再把请求负载均衡到 3 个 Nginx Pod 中的一个

5. Ingress 真正解决的 3 个核心问题

  1. 统一入口:所有服务共享一个 IP / 端口,对外只暴露一个入口。
  2. 域名路由:用域名区分服务,比 IP:Port 友好太多。
  3. 七层能力:支持 HTTP/HTTPS、路径重写、SSL 终结、限流等,这些是 4 层 Service 做不到的。

6. 一句话记忆

Ingress 就是 Kubernetes 集群的 "智能反向代理",帮你把外部流量,按规则分发到内部服务。

相关推荐
程序员-Benothing3 小时前
Linux安全加固指南:账号、权限、服务、审计基线
linux·运维·安全
Mininglamp_27183 小时前
接口调用 vs 屏幕理解:两种 GUI 自动化架构的技术取舍
运维·架构·自动化
爱喝水的鱼丶6 小时前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
木子欢儿6 小时前
openconnect Linux客户端安装 以及开机自启和登录
linux·运维·服务器
..Dauntless..6 小时前
【Linux】文件系统(一)
linux·运维·服务器
天空属于哈夫克36 小时前
企业微信API二次开发 赋能私域运营自动化
运维·自动化·企业微信
天远API7 小时前
零信任架构实战:基于天远运营商二要素V即时版构建自动化分时租赁出行会员身份一致性审核网关
运维·人工智能·架构·自动化
极光通讯7 小时前
液冷服务器对内存和SSD的适配要求:高密度部署下的散热与信号完整性
运维·服务器
2501_937767169 小时前
面向设计 / 研发部门:终端文件统一归档 + 服务器定时备份实践
运维·安全
GeW9 小时前
新质生产力路线图:从Linux到数据库,企业落地要点都在这
linux