-
Notifications
You must be signed in to change notification settings - Fork 0
/
karpenter.yaml
46 lines (46 loc) · 1.65 KB
/
karpenter.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
name: test-nodepool
namespace: karpenter
spec:
template:
spec:
requirements:
- key: kubernetes.io/arch
operator: In
values: ["amd64"] # 노드 아키텍처
- key: kubernetes.io/os
operator: In
values: ["linux"] # 운영 체제
- key: karpenter.sh/capacity-type
operator: In
values: ["spot", "on-demand"] # Spot 인스턴스 선호, 필요시 온디맨드 인스턴스 사용
- key: karpenter.k8s.aws/instance-category
operator: In
values: ["c", "m", "r"] # 컴퓨팅, 메모리, 스토리지 최적화 인스턴스
nodeClassRef:
group: karpenter.k8s.aws
kind: EC2NodeClass
name: test-ec2-nodeclass # EC2NodeClass 참조
limits:
cpu: 100 # 노드 풀에서 사용할 수 있는 총 CPU 용량 제한
disruption:
consolidationPolicy: WhenEmptyOrUnderutilized # 활용도가 낮거나 사용되지 않는 노드는 통합 및 축소
consolidateAfter: 2m # 노드가 활용도가 낮을 때 2분 후 통합
---
apiVersion: karpenter.k8s.aws/v1
kind: EC2NodeClass
metadata:
name: test-ec2-nodeclass
spec:
amiFamily: AL2023 # Amazon Linux 2 AMI 사용
role: "KarpenterNodeRole-eks-cluster" # 클러스터 이름으로 대체
subnetSelectorTerms:
- tags:
karpenter.sh/discovery: "eks-cluster" # EKS 클러스터를 위한 서브넷 태그
securityGroupSelectorTerms:
- tags:
karpenter.sh/discovery: "eks-cluster" # 클러스터 보안 그룹 태그
amiSelectorTerms:
- id: "ami-078e941ddd932d45c" # 선택할 AMI의 ID