我有一个关于Kubernetes的领导者/追随者对kube-控制器-经理和kube-调度器的租赁管理的问题:据我所知,Kubernetes在kube-system名称空间中将当前的领导者跟踪为端点。
你可以通过
$ kubectl get endpoints -n kube-system
NAME ENDPOINTS AGE
kube-controller-manager <none> 20m
kube-scheduler <none> 20m然后,G.
$ kubectl describe endpoints kube-scheduler -n kube-system
Name: kube-scheduler
Namespace: kube-system
Annotations: control-plane.alpha.kubernetes.io/leader={"holderIdentity":"controller-0", ...}当前的领导者是holderIdentity的control-plane.alpha.kubernetes.io/leader注释。
我的问题是:
租约管理(如获取租约、续签租约、生存时间等)是在Kubernetes端点之上的leaderelection.go中实现的。是否有一个具体的原因,租赁管理没有直接实现在Etcd上“开箱即用”Etcd原语,如Etcd的比较和交换操作和时间上的对象?
编辑
发布于 2018-09-29 16:50:09
以下几个原因:
发布于 2020-04-24 18:41:11
出于安全考虑,只有API服务器才能访问etcd。请记住,如果etcd是按照约定用于领导人租赁的,则使用领导人选举的自定义控制器和操作员也需要访问etcd,考虑到存储在etcd中的数据有多重要,这将是不可取的。
参考文献:https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/#securing-etcd-clusters
https://stackoverflow.com/questions/52561516
复制相似问题