繁体   English   中英

Ingress-controller-nginx 领导人选举 - 为什么?

[英]Ingress-controller-nginx leader election - Why?

任何人都可以解释为什么在具有多个副本的入口控制器(nginx)部署时需要领导选举? 他们之间有同步吗? 什么是真正同步的?

我搜索了文档并找到了......我不知道有一个配置图保存了领导者的 POD 名称,但仅此而已。

我还看到在启动 pod 时正在进行领导者选举

I0828 16:08:39.500651       7 nginx.go:307] Starting NGINX process
I0828 16:08:39.500779       7 leaderelection.go:242] attempting to acquire leader lease ingresscontroller/ingress-controller-leader...
I0828 16:08:39.500890       7 nginx.go:327] Starting validation webhook on :8443 with keys /usr/local/certificates/cert /usr/local/certificates/key
I0828 16:08:39.503049       7 controller.go:141] Configuration changes detected, backend reload required.
I0828 16:08:39.504322       7 status.go:86] new leader elected: ingress-nginx-controller-xxxxxx-xxxx
I0828 16:08:39.728368       7 controller.go:157] Backend successfully reloaded.
I0828 16:08:39.728416       7 controller.go:166] Initial sync, sleeping for 1 second.

谁能提供一些关于为什么需要领导者的见解?

提前致谢!

布雷格特

领导选举,简单来说,是一种机制,它保证只有一个 nginx 入口控制器的实例在主动做出决策,而所有其他实例都处于非活动状态,但如果活动的实例发生什么事,则准备好接管。

这在本质上与 kube 控制器管理器或 kube 调度器等 kubernetes 的控制平面组件非常相似。

同步是将所需状态从入口资源中定义的规则同步到实际的 nginx 配置文件中

nginx 入口控制器 pod 副本本身之间没有状态同步,因为每个 pod 都能够在 pod 首次启动时执行从入口资源到实际 nginx 配置文件的所需状态的同步,并保持连续通过 kubernetes API 服务器公开的 API 监视入口和少数其他资源。

文件摘录:

-启用领导人选举
启用 Leader 选举以避免控制器的多个副本报告 Ingress、VirtualServer 和 VirtualServerRoute 资源的状态——只有一个副本会报告状态。 (默认为真)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM