【问题标题】:How does Kubernetes create the Leases resource for an ETCD cluster to view the leader information?Kubernetes如何为ETCD集群创建Leases资源来查看leader信息?
【发布时间】:2021-07-08 21:40:46
【问题描述】:

Kubernetes如何为ETCD集群创建Leases资源来查看leader信息?

$ kubectl get leases
NAME                      HOLDER                                                       AGE
kube-controller-manager   master01.k8s-host.com_68f9a489-4e8c-4dc6-a9c2-6136d4cf7798   22h
kube-scheduler            master01.k8s-host.com_b1a8a9a3-e2bb-4102-84a4-b046b8776bdb   21h
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.8", GitCommit:"5575935422cc1cf5169dfc8847cb587aa47bac5a", GitTreeState:"clean", BuildDate:"2021-06-16T13:00:45Z", GoVersion:"go1.15.13", Compiler:"gc", Platform:"linux/amd64"}
$ etcd version
etcd Version: 3.4.16
Git SHA: d19fbe541
Go Version: go1.12.17
Go OS/Arch: linux/amd64

【问题讨论】:

    标签: kubernetes etcd


    【解决方案1】:

    可能对您有所帮助的部分答案。但是,也许您想重新表述“Kubernetes 如何创建 Leases 资源”。 Tbh 不清楚您是想检查后台发生的事情的详细输出,还是想了解主要思想和步骤。

    我发现的是相当全面的etcd文章Getting Started with Kubernetes | etcd | LEASE part

    Lease 通常用于表示分布式租赁中的分布式租赁 系统。通常,租赁机制需要检测是否 一个节点在分布式系统中是活跃的。

    如上图所示,创建了一个 10 秒的租约。如果你 租约创建后不执行任何操作,租约 10秒后自动过期。将 key1 和 key2 绑定到 让etcd在租用时自动清除key1和key2 过期了。

    如果您想保留租约,您需要定期致电 KeeyAlive 方法来刷新它。例如,要检查是否 分布式系统中的进程是活着的,你可以创建一个租约 进程并定期调用进程中的 KeepAlive 方法。 如果进程正常,则保留该节点上的租约。如果 进程崩溃,租约自动到期。

    但是,如果需要大量密钥来支持类似的租约 机制,并且必须为每个密钥独立刷新租约, 这给 etcd 带来了很大的压力。因此,etcd 允许 多个键的绑定(例如,具有相似过期时间的键 次)到相同的租约,这可以大大减少开销 更新租约并提高 etcd 性能。

    【讨论】:

      猜你喜欢
      • 2021-01-09
      • 2020-09-22
      • 2019-06-04
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      相关资源
      最近更新 更多