Alb Ingress Controller如何target-type:instance转发请求

时间:2019-05-27 06:31:47

标签: kubernetes kubernetes-ingress amazon-eks aws-eks

https://github.com/kubernetes-sigs/aws-alb-ingress-controller/blob/master/docs/guide/ingress/annotation.md#target-type

在上面的链接中提到“实例模式”会将流量路由到为您的服务打开的NodePort上群集中的所有ec2实例。 那么,如果在不同实例中运行多个Pod副本时,kube-proxy如何确保仅一次处理请求?又如何确保所有Pod均均匀地处理请求?

1 个答案:

答案 0 :(得分:1)

根据文档:

Amazon Elastic Load Balancing应用程序负载平衡器(ALB)是一种流行的AWS服务,可跨多个目标(例如Amazon EC2实例)对应用程序层(第7层)的传入流量进行负载平衡。

AWS ALB Ingress控制器是一个控制器,只要Kubernetes用户在集群上声明Ingress资源,该控制器就会触发ALB和必需的支持AWS资源的创建。 Ingress资源使用ALB将HTTP [s]流量路由到群集内的不同端点。

  
      
  1. 实例模式下,入口流量从ALB开始,到达服务的节点端口。流量被路由到群集内的容器POD。   此外,AWS ALB入口控制器中的 target-type:“实例模式” 默认设置,并且服务的类型必须是“ NodePort”或“ LoadBalancer” 即可使用此模式。

  2.   
  3. 管理ALB是自动的,您只需要像通常那样定义入口资源。在Kubernetes集群中运行的ALB入口控制器POD与Kubernetes API通信并完成所有工作。但是,此POD只是一个控制平面,它不执行任何代理和类似操作。

  4.   

您的应用程序负载平衡器定期将请求发送到其注册目标以测试其状态。这些测试称为健康检查。 Alb-ingress-controller正在为目标组执行“健康检查”。可以使用注释来控制目标组上不同的“健康检查”。

您可以找到有关ALB入口和NodePort herehere的更多信息

希望获得帮助。