Karpenter CRD
NodePool
NodePool는 NodePool에 명시된 제약사항과 Workload에 명시된 제약사항 중 처리 가능한 제약사항을 고려하여 프로비저닝을 수행합니다. 옵션이 다양한 만큼 여러 제약사항의 조합을 만들 수 있도록 하여 유언성을 제공합니다.
또한 kube-scheduler나 Node가 준비 상태가 되기 전에 Pod가 배치되기 위한 작업을 미리 수행해서 노드 시작 대기 시간을 줄여 줍니다.
warning
Node는 NodePool가 소유합니다. 따라서 NodePool를 삭제하면 소유하고 있는 Node들도 삭제됩니다.
kubectl explain nodepool.spec
apiVersion: karpenter.sh/v1beta1
kind: NodePool
metadata:
name: <name>
spec.template
spec:
template:
metadata:
labels:
<key>: <value>
annotations:
<key>: <value>
spec:
nodeClassRef:
name: <nodeClassName>
taints:
- key: <key>
value: <value>
effect: <NoSchedule|PreferNoSchedule|NoExecute>
# startupTaints: []
requirements:
- key: <key>
operator: <In|NotIn|Exists|DoesNotExist|Gt|Lt>
values:
- <value>
kubelet:
clusterDNS:
- <ip|url>