... | ... | @@ -26,5 +26,18 @@ |
|
|
|
|
|
[Simple leader election with Kubernetes and Docker](https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/): 注意到这是一个很老的文章。
|
|
|
|
|
|
[Deep dive into Kubernetes Simple Leader Election](https://medium.com/michaelbi-22303/deep-dive-into-kubernetes-simple-leader-election-3712a8be3a99)
|
|
|
: 对上面文章的解说 |
|
|
\ No newline at end of file |
|
|
上文中提到了一个[PR](https://github.com/kubernetes-retired/contrib/pull/353/files),可以看到人家是怎么实现的。
|
|
|
|
|
|
注意到这 PR 的 repo 已经 retired。那是不是说,这里所说的方法,就不能用了呢?并不是,这 PR 其实使用了 "k8s.io/kubernetes/pkg/client/leaderelection"。在新版本的 k8s 中,它位于[这里](https://github.com/kubernetes/client-go/blob/master/tools/leaderelection/leaderelection.go),应该是还在被维护着的。
|
|
|
|
|
|
leaderelection 对应的 go package 文档在[这里](https://pkg.go.dev/k8s.io/client-go/tools/leaderelection)。它在 overview 中有一些关于局限性的说明,让人想到魔鬼都住在细节中。
|
|
|
|
|
|
另外,[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 信息。
|
|
|
|
|
|
[Deep dive into Kubernetes Simple Leader Election](https://medium.com/michaelbi-22303/deep-dive-into-kubernetes-simple-leader-election-3712a8be3a99) 对 [Simple leader election with Kubernetes and Docker](https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/) 进行了解说。
|
|
|
|
|
|
[Leader Election inside Kubernetes](https://carlosbecker.com/posts/k8s-leader-election/) 一文展示了 leaderelection 的使用。
|
|
|
|
|
|
也有人基于 leaderelection 做出了[库](https://github.com/vapor-ware/k8s-elector), 但是 star 很少。
|
|
|
|
|
|
|