-
Notifications
You must be signed in to change notification settings - Fork 0
/
karpenter-config.yaml
225 lines (225 loc) · 5.27 KB
/
karpenter-config.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
name: nodeGroup2Launch
spec:
disruption:
budgets:
- nodes: 10%
- duration: 8h
nodes: '0'
schedule: 0 9 * * mon-fri
consolidateAfter: 1m | Never
consolidationPolicy: WhenEmptyOrUnderutilized
limits:
cpu: '1000'
memory: 1000Gi
template:
metadata:
annotations:
example.com/owner: my-team
labels:
billing-team: my-team
spec:
expireAfter: 720h | Never
nodeClassRef:
group: karpenter.k8s.aws
kind: EC2NodeClass
name: default
requirements:
- key: karpenter.k8s.aws/instance-category
minValues: 2
operator: In
values:
- c
- m
- r
- key: karpenter.k8s.aws/instance-family
minValues: 5
operator: In
values:
- m5
- m5d
- c5
- c5d
- c4
- r4
- key: karpenter.k8s.aws/instance-cpu
operator: In
values:
- '4'
- '8'
- '16'
- '32'
- key: karpenter.k8s.aws/instance-hypervisor
operator: In
values:
- nitro
- key: karpenter.k8s.aws/instance-generation
operator: Gt
values:
- '2'
- key: topology.kubernetes.io/zone
operator: In
values:
- us-west-2a
- us-west-2b
- key: kubernetes.io/arch
operator: In
values:
- arm64
- amd64
- key: karpenter.sh/capacity-type
operator: In
values:
- spot
- on-demand
startupTaints:
- effect: NoSchedule
key: example.com/another-taint
taints:
- effect: NoSchedule
key: example.com/special-taint
terminationGracePeriod: 48h
weight: 10
status:
conditions:
- lastTransitionTime: '2024-02-02T19:54:34Z'
message: NodeClaim hasn't succeeded launch
observedGeneration: 1
reason: NodeClaimNotLaunched
status: 'False'
type: Initialized
resources:
cpu: '20'
ephemeral-storage: 100Gi
memory: 8192Mi
---
apiVersion: karpenter.k8s.aws/v1
kind: EC2NodeClass
metadata:
name: updated
spec:
amiFamily: AL2
amiSelectorTerms:
- tags:
environment: test
karpenter.sh/discovery: ${CLUSTER_NAME}
- name: my-ami
- id: ami-123
associatePublicIPAddress: true
blockDeviceMappings:
- deviceName: /dev/xvda
ebs:
deleteOnTermination: true
encrypted: true
iops: 10000
kmsKeyID: 1234abcd-12ab-34cd-56ef-1234567890ab
snapshotID: snap-0123456789
throughput: 125
volumeSize: 100Gi
volumeType: gp3
detailedMonitoring: true
instanceProfile: KarpenterNodeInstanceProfile-${CLUSTER_NAME}
instanceStorePolicy: RAID0
kubelet:
clusterDNS:
- 10.0.1.100
cpuCFSQuota: true
evictionHard:
memory.available: 5%
nodefs.available: 10%
nodefs.inodesFree: 10%
evictionMaxPodGracePeriod: 60
evictionSoft:
memory.available: 500Mi
nodefs.available: 15%
nodefs.inodesFree: 15%
evictionSoftGracePeriod:
memory.available: 1m
nodefs.available: 1m30s
nodefs.inodesFree: 2m
imageGCHighThresholdPercent: 85
imageGCLowThresholdPercent: 80
kubeReserved:
cpu: 200m
ephemeral-storage: 3Gi
memory: 100Mi
maxPods: 20
podsPerCore: 2
systemReserved:
cpu: 100m
ephemeral-storage: 1Gi
memory: 100Mi
metadataOptions:
httpEndpoint: enabled
httpProtocolIPv6: disabled
httpPutResponseHopLimit: 1
httpTokens: required
role: KarpenterNodeRole-${CLUSTER_NAME}
securityGroupSelectorTerms:
- tags:
environment: test
karpenter.sh/discovery: ${CLUSTER_NAME}
- name: my-security-group
- id: sg-063d7acfb4b06c82c
subnetSelectorTerms:
- tags:
environment: test
karpenter.sh/discovery: ${CLUSTER_NAME}
- id: subnet-09fa4a0a8f233a921
tags:
app: team-a-app
team: team-a
userData: "echo \"Hello world\" \n"
status:
amis:
- id: ami-01234567890123456
name: custom-ami-amd64
requirements:
- key: kubernetes.io/arch
operator: In
values:
- amd64
- id: ami-01234567890123456
name: custom-ami-arm64
requirements:
- key: kubernetes.io/arch
operator: In
values:
- arm64
conditions:
- lastTransitionTime: '2024-02-02T19:54:34Z'
status: 'True'
type: InstanceProfileReady
- lastTransitionTime: '2024-02-02T19:54:34Z'
status: 'True'
type: SubnetsReady
- lastTransitionTime: '2024-02-02T19:54:34Z'
status: 'True'
type: SecurityGroupsReady
- lastTransitionTime: '2024-02-02T19:54:34Z'
status: 'True'
type: AMIsReady
- lastTransitionTime: '2024-02-02T19:54:34Z'
status: 'True'
type: Ready
instanceProfile: ${CLUSTER_NAME}-0123456778901234567789
securityGroups:
- id: sg-041513b454818610b
name: ClusterSharedNodeSecurityGroup
- id: sg-0286715698b894bca
name: ControlPlaneSecurityGroup-1AQ073TSAAPW
subnets:
- id: subnet-0a462d98193ff9fac
zone: us-east-2b
- id: subnet-0322dfafd76a609b6
zone: us-east-2c
- id: subnet-0727ef01daf4ac9fe
zone: us-east-2b
- id: subnet-00c99aeafe2a70304
zone: us-east-2a
- id: subnet-023b232fd5eb0028e
zone: us-east-2c
- id: subnet-03941e7ad6afeaa72
zone: us-east-2a