腾讯云国际站:为什么需要Ingress控制器?

实现外部访问

  • 统一入口 :Kubernetes 集群内部的服务通常运行在集群内部的网络中,外部无法直接访问。Ingress 控制器可以为集群中的多个服务提供一个统一的外部入口点,使得外部用户可以通过该入口访问到集群内的各种服务,而无需为每个服务单独暴露一个外部 IP 或端口。
  • 灵活的路由规则 :Ingress 控制器可以根据预定义的路由规则,将外部请求转发到集群内部对应的服务上。这些规则可以基于域名、URL 路径等进行匹配,使得不同的服务可以通过同一个入口地址对外提供服务,提高了资源的利用率和管理的便捷性。

负载均衡

  • 流量分发 :Ingress 控制器能够对进入集群的外部流量进行负载均衡,将请求分发到后端多个相同服务的实例上。这可以有效地分摊流量压力,提高服务的可用性和性能,避免单个服务实例因流量过大而出现过载或故障。
  • 会话保持 :一些应用场景中,如在线购物车、在线游戏等,需要保持用户的会话状态。Ingress 控制器可以支持会话保持功能,确保同一用户的请求转发被到同一个后端服务实例上,从而保证会话的连续性和一致性。

SSL/TLS 终止

  • 集中管理证书 :Ingress 控制器可以在入口处终止 SSL/TLS 加密,统一对外部请求进行解密和处理。这样可以将 SSL/TLS 证书的管理集中到 Ingress 控制器上,减少了为每个服务单独配置和管理证书的工作量,也便于证书的更新和维护。
  • 提升性能 :SSL/TLS 加密和解密过程会消耗一定的计算资源,将这一过程集中在 Ingress 控制器上完成,可以减轻后端服务的负担,提高整体系统的性能。

认证和授权

  • 统一认证入口 :Ingress 控制器可以在外部请求进入集群之前,对请求进行身份认证。它可以与各种认证服务集成,如 OAuth、LDAP 等,实现统一的认证入口,确保只有经过授权的用户或系统才能访问集群内的服务。
  • 灵活的授权策略 :根据不同的服务和用户角色,Ingress 控制器可以应用灵活的授权策略,控制用户对特定服务的访问权限。

流量管理与监控

  • 修改请求和重写 :Ingress 控制器可以在将请求转发到后端服务之前,对请求进行修改和重写,如添加请求头、修改请求路径等。这可以满足一些特殊的应用场景需求,如跨域资源共享(CORS)配置、API 版本管理等。
  • 可观测性 :Ingress 控制器通常会提供一些监控指标和日志记录功能,方便管理员对集群的流量情况进行监控和分析。通过这些数据,可以及时发现和处理潜在的问题,如流量、异常请求错误率高等。