Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 

Contrail 入口工作流程

 

在 Contrail Kubernetes 环境中配置入口时,事件将被其他系统组件发现,并且将触发许多操作。深度级别实施超出了本书的范畴,但在很高层次上,这是工作流程:

  • Contrail-kube manager 始终聆听 kube-apiserver 的事件。

  • 用户创建入口对象(规则)。

  • Contrail-kube manager 从 kube-apiserver 获取事件。

  • Contrail-kube-manager 在 contrail DB 中创建负载平衡器对象,并将 balancer_ 提供商类型的负载设置为 open contrail for 入口(在此是服务固有的位置)。

如前所述,contrail 服务监控组件根据负载 balancer_provider 类型发现负载平衡器创建事件,并为指定的 load balancer_provider 类型调用注册的负载平衡器驱动程序:

  • 如果负载 balancer_provider 类型为 native,则会调用 ECMP loadbalancer 驱动程序以获取 ECMP 负载平衡,我们在前一节中对其进行了回顾。

  • 如果 load balancer_provider 类型为 open contrail,它将调用 haproxy 负载平衡器驱动程序,以触发 Kubernetes 节点中启动的 haproxy 进程。

您可以看到,Contrail 使用 haproxy 负载平衡器实施入口,也可在有关 Contrail Kubernetes 对象映射的部分中进行阅读。第3章介绍了入口控制器,以及如何在 Contrail 中共存多个入口控制器。在 Contrail 环境中,Contrail-kube manager 将扮演入站控制器角色。它会读取用户输入的入口规则,并将其计划到负载平衡器中。再者

  • 对于每个入口对象,将创建一个负载平衡器;

  • 将为入口创建两个 haproxy 流程,并以活动待机模式工作:

    • 一个计算节点运行活动 haproxy 进程

    • 另一个计算节点运行备用 haproxy 进程

  • 根据入口对象中定义的规则,使用适当的配置对两个 haproxy 进程进行编程。