Ingress

Ingress 是 Kubernetes 中负责管理外部流量进入集群的资源对象。它本身只是一个规则集合,定义了外部请求如何进入集群、如何路由到内部的 Service。真正执行这些规则的是 Ingress Controller。


🧩 Ingress 的职责

  • 统一入口:为集群提供一个外部可访问的域名或 IP。
  • 路由规则:根据域名或路径,把请求转发到不同的 Service。
  • 负载均衡:在多个 Pod 副本之间分配流量。
  • TLS/HTTPS 支持:可配置证书,实现安全通信。

📌 类比理解

  • Ingress = 大门保安的规则手册
    • 它写明了哪些人(请求)能进门,走哪条路(路径/域名)。
  • Ingress Controller = 保安团队
    • 它每天按照手册在门口执勤,真正检查来访者并引导他们进入正确的部门(Service)。

📝 示例配置

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: api-service
            port:
              number: 80
      - path: /web
        pathType: Prefix
        backend:
          service:
            name: web-service
            port:
              number: 80

👉 这个 Ingress 会根据路径把请求分别转发到 api-service 和 web-service。


⚠️ 注意事项

  • Ingress 本身不处理流量,必须依赖 Ingress Controller(如 Nginx、Traefik、HAProxy)。
  • 与 Service 配合:Ingress 控制入口,Service 控制内部流量分发。
  • 建议启用 TLS,保证安全性。

💡 总结

  • Ingress = 规则对象,定义外部流量如何进入集群。
  • Ingress Controller = 执行者,真正实现路由和负载均衡。
  • 两者结合,才能让外部用户通过域名或路径访问集群中的应用。

🧩 Ingress Controller

Ingress Controller 是 Kubernetes 中真正执行 Ingress 规则的组件。Ingress 本身只是一个“规则对象”,而 Ingress Controller 才是那个在集群入口处工作的“保安团队”,负责把规则落实到负载均衡器或代理服务器上。


🧩 Ingress Controller 的职责

  • 监听 Ingress 资源
    👉 持续监听 API Server 中的 Ingress 对象,解析其中的域名、路径、后端 Service 信息。
  • 配置负载均衡
    👉 在集群入口处建立负载均衡器,把外部请求分配到合适的 Pod。
  • 流量路由
    👉 根据 Ingress 规则,把不同路径或域名的请求转发到对应的 Service。
  • TLS/HTTPS 支持
    👉 管理证书,实现安全的 HTTPS 通信。

📌 类比理解

  • Ingress = 保安手册:写明了哪些人(请求)能进门,走哪条路。
  • Ingress Controller = 保安团队:每天按照手册在门口执勤,真正检查来访者并引导他们进入正确的部门(Service)。

⚙️ 常见 Ingress Controller

  • Nginx Ingress Controller:最常用,功能丰富,社区支持强。
  • HAProxy Ingress:高性能,适合大规模流量场景。
  • Traefik:轻量级,支持动态配置和微服务架构。
  • 云厂商专用 Controller:如 AWS ALB Ingress Controller、GCP Ingress Controller,直接集成云负载均衡。

📝 部署示例(Nginx Ingress Controller)

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml

👉 部署后,Ingress Controller 会自动监听 Ingress 资源,并配置路由。


💡 总结

  • Ingress = 规则对象,定义外部流量如何进入集群。
  • Ingress Controller = 执行者,真正实现路由和负载均衡。
  • 两者结合,才能让外部用户通过域名或路径访问集群中的应用。
posted @ 2026-05-28 11:31  Donaver  阅读(61)  评论(0)    收藏  举报