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
- https://github.com/kubernetes/enhancements/blob/0460fcf4637d440ce7d539a931e44dae931f9849/keps/sig-node/0009-node-heartbeat.mdhttps://kubernetes.io/docs/concepts/architecture/nodes/
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
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
'System Engineering > Kubernetes' 카테고리의 다른 글
Node Problem Detector and Draino (0) | 2022.09.27 |
---|---|
Kubernetes Authentication (0) | 2022.09.11 |
8. K8s AutoScaling (0) | 2021.04.11 |
7. K8s Resource / Scheduling (0) | 2021.04.05 |
6. K8s Volume (0) | 2021.04.05 |