전용 인스턴스에서 중요한 애드온 실행하기
전용 인스턴스에서 중요한 애드온 실행하기
EKS Auto Mode가 워크로드를 system Node Pool에 스케줄링하도록 CriticalAddonsOnly 톨러레이션을 가진 워크로드를 배포하는 방법을 알아봐요. 중요한 애드온을 전용 인스턴스에서 격리해 실행할 수 있답니다.
출처: 문서
본문
EKS Auto Mode의 내장 system Node Pool은 중요한 애드온을 전용 인스턴스에서 실행하도록 설계됐어요. 이렇게 격리하면 필수 컴포넌트가 전용 리소스를 확보하고 일반 워크로드와 분리되어 클러스터의 전반적인 안정성과 성능이 향상돼요.
이 가이드는 CriticalAddonsOnly 톨러레이션과 적절한 node selector를 활용해 애드온을 system Node Pool에 배포하는 방법을 보여줘요. 이 단계를 따르면 중요한 애플리케이션이 전용 system 노드에 스케줄링되어 EKS Auto Mode의 특화된 Node Pool 구조가 제공하는 격리와 리소스 할당 이점을 활용할 수 있어요.
EKS Auto Mode에는 general-purpose와 system 두 가지 내장 Node Pool이 있어요. 자세한 내용은 Enable or Disable Built-in NodePools을 참고해 주세요.
system Node Pool의 목적은 중요한 애드온을 서로 다른 노드로 분리하는 거예요. system Node Pool이 프로비저닝한 노드에는 CriticalAddonsOnly Kubernetes taint가 있어요. Kubernetes는 해당 톨러레이션(toleration)이 있는 파드만 이런 노드에 스케줄링해요. 자세한 내용은 Kubernetes 문서의 Taints and Tolerations를 참고해 주세요.
사전 조건 (Prerequisites)
- 내장
systemNode Pool이 활성화된 EKS Auto Mode 클러스터. 자세한 내용은 Enable or Disable Built-in NodePools을 참고해 주세요. kubectl설치 및 설정. 자세한 내용은 Set up to use Amazon EKS를 참고해 주세요.
절차 (Procedure)
아래 예시 yaml을 살펴봐요. 다음 구성에 주목해 주세요:
nodeSelector— 이 값을 워크로드를 내장systemNode Pool과 연결해요. 이 Node Pool은 AWS API로 활성화해야 해요. 자세한 내용은 Enable or Disable Built-in NodePools을 참고해 주세요.tolerations— 이 톨러레이션은systemNode Pool 노드의CriticalAddonsOnlytaint를 극복해요.
apiVersion: apps/v1
kind: Deployment
metadata:
name: sample-app
spec:
replicas: 3
selector:
matchLabels:
app: sample-app
template:
metadata:
labels:
app: sample-app
spec:
nodeSelector:
karpenter.sh/nodepool: system
tolerations:
- key: "CriticalAddonsOnly"
operator: "Exists"
containers:
- name: app
image: nginx:latest
resources:
requests:
cpu: "500m"
memory: "512Mi"
워크로드를 system Node Pool에서 실행하도록 업데이트하려면 다음이 필요해요:
- 기존 워크로드를 위에서 설명한
nodeSelector와tolerations구성을 추가하도록 업데이트해요. - 업데이트된 워크로드를
kubectl apply로 클러스터에 배포해요.
업데이트 후에는 워크로드가 전용 노드에서 실행돼요.