... | ... | @@ -32,7 +32,7 @@ leaderelection 对应的 go package 文档在[这里](https://pkg.go.dev/k8s.io/ |
|
|
|
|
|
另外,[Simple leader election with Kubernetes and Docker](https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/)一文也提到了如何在应用程序中方便地使用 leader selection: 可以把 leader selection 做到 side car 中,暴露出 http 接口,应用服务访问这个接口来获取 leader 信息。
|
|
|
|
|
|
从 leaderelection [源码](https://github.com/kubernetes/client-go/blob/master/tools/leaderelection/leaderelection.go 中可以看到,它还有个 NewLeaderHealthzAdaptor ,能够把健康状态整合到 leader election 里面。(不过,如果使用 side car 方式,这会引入循环依赖?不过这应该是小问题。)
|
|
|
从 leaderelection [源码](https://github.com/kubernetes/client-go/blob/master/tools/leaderelection/leaderelection.go) 中可以看到,它还有个 NewLeaderHealthzAdaptor ,能够把健康状态整合到 leader election 里面。(不过,如果使用 side car 方式,这会引入循环依赖?不过这应该是小问题。)
|
|
|
|
|
|
另外,从源码中可以看到,经过这些年, leaderelection 的实现机制,变得更加丰富。除了 endpoint , 它还可以依托于 configmap、 lease 和“锁的组合”,见[这里](https://github.com/kubernetes/client-go/tree/master/tools/leaderelection/resourcelock)。不过,下层实现仍然主要是 Annotations。
|
|
|
|
... | ... | |