System Engineering/Kubernetes

Kubernetes Lease (Node Heartbeat)

Hopulence 2022. 1. 10. 11:33
반응형

1. Lease

  • 목적 : Node Heartbeat에 대한 ETCD의 성능을 개선하기 위해 고안.
  • Mechanism

- Kubelet이 10초마다 NodeStatus 연산.

- Node에서 Meaningful Chnage가 감지되면 NodeStatus를 Update.

- Kubelet이 Lease Object를 생성하고 10초마다 ETCD로 Update하며, 이후 40초(Default)까지 Update 주기를 낮춤.

- 이후 특이사항이 없으면 분당 1회 이상 주기적으로 Update 빈도 감소.

- LeaseDurationSeconds(Default 5m)에 해당하는 시간 안에 Lease가 Accquire 되지 않으면 Unreachable Node로 간주 .

- Master의 ControllerManager를 통해 CRD(Custom Resource Definition)도 감시 가능

 

2. Resource Format

#root:~> kubectl explain lease --recursive
KIND:     Lease
VERSION:  coordination.k8s.io/v1

DESCRIPTION:
     Lease defines a lease concept.

FIELDS:
   apiVersion   <string>
   kind <string>
   metadata     <Object>
      annotations       <map[string]string>
      clusterName       <string>
      creationTimestamp <string>
      deletionGracePeriodSeconds        <integer>
      deletionTimestamp <string>
      finalizers        <[]string>
      generateName      <string>
      generation        <integer>
      labels    <map[string]string>
      managedFields     <[]Object>
         apiVersion     <string>
         fieldsType     <string>
         fieldsV1       <map[string]>
         manager        <string>
         operation      <string>
         time   <string>
      name      <string>
      namespace <string>
      ownerReferences   <[]Object>
         apiVersion     <string>
         blockOwnerDeletion     <boolean>
         controller     <boolean>
         kind   <string>
         name   <string>
         uid    <string>
      resourceVersion   <string>
      selfLink  <string>
      uid       <string>
   spec <Object>
      acquireTime       <string>
      holderIdentity    <string>
      leaseDurationSeconds      <integer>
      leaseTransitions  <integer>
      renewTime <string>

 

3. Reference

 

Nodes

Kubernetes runs your workload by placing containers into Pods to run on Nodes. A node may be a virtual or physical machine, depending on the cluster. Each node is managed by the control plane and contains the services necessary to run Pods. Typically you h

kubernetes.io

https://www.alibabacloud.com/blog/getting-started-with-kubernetes-%7C-etcd_596292

 

Getting Started with Kubernetes | etcd

Zeng Fansong, a senior container platform expert, explains the history, evolution, and proper usage of etcd.

www.alibabacloud.com

https://github.com/kubernetes/enhancements/blob/0460fcf4637d440ce7d539a931e44dae931f9849/keps/sig-node/0009-node-heartbeat.md

 

GitHub - kubernetes/enhancements: Enhancements tracking repo for Kubernetes

Enhancements tracking repo for Kubernetes. Contribute to kubernetes/enhancements development by creating an account on GitHub.

github.com

 

반응형