Bre*_*nen 5 kubernetes kubernetes-ingress nginx-ingress
谁能解释为什么在部署具有多个副本的入口控制器(nginx)时需要领导者选举?他们之间有同步吗?实际上同步了什么?
我搜索了文档并发现...我不知道有一个 configmap 保存了领导者的 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.
Run Code Online (Sandbox Code Playgroud)
谁能提供一些关于为什么需要领导者的见解?
提前致谢!
布雷特
简单来说,领导者选举是一种机制,保证 nginx 入口控制器中只有一个实例正在主动做出决策,而所有其他实例均处于非活动状态,但如果活动实例发生问题,则准备好接管领导权。
这本质上与 Kubernetes 的控制平面组件(例如 kube-controller-manager 或 kube-scheduler)非常相似。
同步是将 Ingress 资源中定义的规则中的所需状态同步到实际的 nginx 配置文件中。
nginx 入口控制器 pod 副本本身之间没有状态同步,因为每个 pod 都能够在 pod 首次启动时将所需状态从入口资源同步到实际的 nginx 配置文件,并保持连续状态通过 Kubernetes API 服务器公开的 API 监视 Ingress 和其他一些资源。
归档时间: |
|
查看次数: |
5333 次 |
最近记录: |