워크로드 배치 전략
Node Affinity 및 Taints/Tolerations
Hybrid 노드 Taint 설정
# 온프레미스 노드에 Taint 추가
kubectl taint nodes hybrid-node-001 eks.amazonaws.com/compute-type=hybrid:NoSchedule
# GPU 노드에 추가 Taint
kubectl taint nodes hybrid-gpu-node-001 gpu=true:NoSchedule온프레미스 전용 워크로드
# on-prem-workload.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: data-processor
namespace: analytics
spec:
replicas: 3
selector:
matchLabels:
app: data-processor
template:
metadata:
labels:
app: data-processor
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: eks.amazonaws.com/compute-type
operator: In
values:
- hybrid
tolerations:
- key: eks.amazonaws.com/compute-type
operator: Equal
value: hybrid
effect: NoSchedule
containers:
- name: processor
image: harbor.internal.company.io/analytics/data-processor:v2.1.0
resources:
requests:
cpu: "2"
memory: "4Gi"
limits:
cpu: "4"
memory: "8Gi"GPU 워크로드 온프레미스, CPU 워크로드 클라우드 패턴
Karpenter를 활용한 Cloud Bursting
Karpenter NodePool 구성
Topology-Aware 스케줄링
Pod Deletion Cost를 활용한 온프레미스 노드 최대 활용
왜 Pod Deletion Cost가 필요한가
어노테이션 값
동작
동작 원리
Mutating Webhook으로 자동 적용
수동 적용 (간단한 방법)
Karpenter 연동 시 고려 사항
구성
역할
마지막 업데이트