什么是 Ingress?

Ingress 是 Kubernetes 中用于管理外部访问集群服务的 API 对象,通常用于配置 HTTPS、负载均衡、基于路径的路由等。它为微服务提供了统一的入口点,简化了外部流量管理。

Kubernetes_Ingress

常见使用场景 🌐

  • HTTP 路由:将不同路径的请求转发到对应的服务
    示例:/booksbook-service, /authorsauthor-service
  • HTTPS 支持:通过 TLS 证书实现加密通信
  • 流量控制:基于权重、状态的灰度发布或 A/B 测试
  • 访问策略:定义允许的客户端 IP 或域名

配置示例 ✅

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - http:
      paths:
      - path: /community/ebooks/kubernetes
        pathType: Prefix
        backend:
          service:
            name: ebook-service
            port:
              number: 80
  tls:
  - hosts:
    - "example.com"
    secretName: "example-tls"

扩展学习 🔍

常见问题解答 ❓

  • Q: Ingress 如何处理多个域名?
    A: 通过 spec.rules 中的 host 字段配置,支持多域名转发。
  • Q: 是否需要对外暴露 Service?
    A: 是的,Ingress 需要通过 Service 的 IP 或域名访问后端应用。

相关技术图解 📈

Kubernetes_Ingress_Architecture
*图:Kubernetes Ingress 架构示意图*

注意:以上内容为技术文档,如需进一步操作,请参考 Kubernetes 官方文档