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