Ingress 是 Kubernetes 中用于控制进入集群服务的流量的 API 对象。它充当了集群的入口点,可以根据不同的规则将流量路由到不同的服务。

在 Kubernetes 中,Ingress 资源定义了一组规则,这些规则指定了从集群外部访问服务的方式。通过使用 Ingress,我们可以实现流量的负载均衡、SSL 终止、基于主机名的路由等功能。

要配置 Ingress 控制流量,首先需要确保 Kubernetes 集群中已经部署了 Ingress Controller。Ingress Controller 是一个运行在集群中的 Pod,负责监听 Ingress 资源的变化并根据规则配置负载均衡器。

接下来,我们需要创建一个 Ingress 资源并定义需要控制的流量规则。例如,我们可以定义一个 Ingress 规则,将来自外部主机的流量通过负载均衡器路由到不同的服务。

下面是一个简单的 Ingress 资源示例:

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

在上面的示例中,我们定义了一个 Ingress 规则,将主机名为 example.com 的流量分别路由到 app1-service 和 app2-service 服务上。

通过使用 Ingress 控制流量,我们可以实现灵活的流量管理和路由配置,为集群中的服务提供更好的访问体验。当然,在实际应用中,还可以根据需要添加更多的规则和配置来满足业务需求。