k8s中Ingress的作用

《快递分拣中心的故事:5分钟搞懂Kubernetes Ingress》

🌟 先看真实场景

假设你开发了一个博客系统,包含:

  • 文章服务:article.yourblog.com
  • 图片服务:image.yourblog.com
  • 后台服务:admin.yourblog.com

不使用Ingress时:

  • 需要给每个服务单独买服务器、配置域名、设置安全证书
  • 用户要记住三个不同地址,体验割裂

使用Ingress后:

  • 所有流量统一走www.yourblog.com
  • 自动根据访问路径分发到对应服务
  • 自动配置HTTPS安全锁

📦 快递中心终极比喻(带配图建议)

  1. 收件大厅(入口层)

    • 所有快递(网络请求)统一接收
    • 自动检查包裹安全性(防火墙)
  2. 智能分拣机(路由规则)

    # 这就是Ingress的"分拣规则说明书"
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: blog-ingress
    spec:
      rules:
      - host: www.yourblog.com
        http:
          paths:
          - path: /articles
            pathType: Prefix
            backend:
              service:
                name: article-service
                port: 80
          - path: /images
            backend:
              service:
                name: image-service
                port: 80
    
  3. 派送通道(到具体服务)

    • 包裹贴上"易碎品"标签 ➡️ 自动走SSL加密通道
    • 夜间包裹 ➡️ 自动限流保护(流量控制)

🆚 关键概念对比表

快递员(Service) 分拣中心(Ingress)
工作层级 知道部门在哪(IP+端口) 看懂快递单内容(HTTP层)
主要职责 部门基础接待 智能调度+安全管控
使用成本 简单但功能单一 需要额外设备(控制器)

💡 新手常见问题

Q:Ingress必须要用吗?
A:如果你的应用需要对外提供多个服务,且想要统一管理访问规则(就像快递量大了必须用分拣中心),这时候就需要了

Q:和直接暴露Service有什么区别?
A:类似让每个部门自己雇快递员 vs 建立统一物流中心,后者更易管理且节省成本

Q:需要自己搭分拣设备吗?
A:不需要!K8S有现成的分拣机(Nginx/Træfik等Ingress控制器),选个顺手的就行


posted on 2025-02-09 16:30  Leo-Yide  阅读(30)  评论(0)    收藏  举报