HaProxy Ingress Controller - 添加 pod 的过程是什么?

HaProxy Ingress Controller - what is the process of add a pod?

在 Kubernetes 集群上使用 HaProxy 作为入口控制器。当旧的 pod 死了,HaProxy 将如何添加新的 pod。

是否可以确保 pod 已准备好接收流量。

现在我正在使用就绪探测器和活性探测器。我知道 Kubernetes 中使用新 pod 的顺序是首先 Liveness probe --> Readiness probe --> 6/6 --> pod is ready.

那么它会使用与 HaProxy Ingress Controller 相同的 Kubernetes 机制吗?

简短的回答是:是的!

来自documentation:

The most demanding part is syncing the status of pods, since the environment is highly dynamic and pods can be created or destroyed at any time. The controller feeds those changes directly to HAProxy via the HAProxy Data Plane API, which reloads HAProxy as needed.

HAProxy ingress 不负责 pod 的健康,它负责接收外部流量并转发正确的 kubernetes 服务。

Kubelet 使用 liveness 和 probes 来知道何时重启容器,这意味着你必须在 pod 定义中定义 liveness, readiness
在 pod lifecycle 文档中查看有关容器探测的更多信息。

The kubelet uses readiness probes to know when a Container is ready to start accepting traffic. A Pod is considered ready when all of its Containers are ready. One use of this signal is to control which Pods are used as backends for Services. When a Pod is not ready, it is removed from Service load balancers.