반응형
    
    
    
  1. 들어가며
EKS 노드 운영 비용을 줄이기 위해 on-demand인스턴스와 spot인스턴스를 분배합니다. karpenter 또한 새로 생성한 노드에 대해 on-demand, spot인스턴스 비율을 정할 수 있습니다.
2. 설정방법
karpenter는 capacity-spread설정을 사용하여 on-demand, spot인스턴스를 분배합니다. 아래 예제는 on-demand:spot 비율을 1:2로 설정합니다. capacity-spread로 비율을 설정할 때 capacity-type을 설정해야 합니다.
# on-demand 설정
apiVersion: karpenter.sh/v1beta1
kind: NodePool
metadata:
  name: on-demand
spec:
  template:
    spec:
      requirements:
      - key: "karpenter.sh/capacity-type"
        operator: In
        values: ["on-demand"]
      - key: capacity-spread
        operator: In
        values:
        - "1"
# spot 설정
apiVersion: karpenter.sh/v1beta1
kind: NodePool
metadata:
  name: spot
spec:
  template:
    spec:
      requirements:
      - key: "karpenter.sh/capacity-type"
        operator: In
        values: ["spot"]
      - key: capacity-spread
        operator: In
        values:
        - "2"
        - "3"
pod에서는 topologySpreadConstraints를 설정하고 capacity-spread를 topologyKey키로 사용합니다.
topologySpreadConstraints:
  - maxSkew: 1
    topologyKey: capacity-spread
    whenUnsatisfiable: DoNotSchedule
    labelSelector:
      matchLabels:
        app: example-17-teama
3. 실습
실습은 deployment를 on-demand, spot인스턴스를 분배하여 배포합니다. on-demand:spot인스턴스 비율을 1:2로 배포합니다. 예제코드는 저의 github에 공개되어 있습니다.
nodepool를 배포합니다. nodepool은 on-demand, spot 두 종류가 있습니다.
kubectl apply -f ./on-demand.yaml
kubectl apply -f ./spot.yaml
nodepool은 capacity-spread를 사용하여 on-demand:spot비율을 1:2로 설정합니다.

deployment를 배포합니다.
kubectl apply -f inflate_deployment.yaml

pod 상태가 running인지 확인합니다.
kubectl get pod

pod가 on-demand:spot인스턴스로 분배 스케쥴링되었는지 확인하려면, kubectl get node로 확인하면 됩니다. capacity-type node label으로 인스턴스 타입을 확인하면 됩니다.
kubectl get nodes -L karpenter.sh/capacity-type -L capacity-spread

반응형
    
    
    
  '전공영역 공부 기록' 카테고리의 다른 글
| Pod 안정성을 높이는 쿠버네티스 설정 (33) | 2024.07.06 | 
|---|---|
| EKS upgrade in-place방식에서 가장 걱정했던 것 (3) | 2024.07.01 | 
| kubernetes graceful shtudown이 중요한 이유 (0) | 2024.06.16 | 
| curl 명령어 생성은 chatgpt 4.o로! (0) | 2024.06.16 | 
| pycharm에서 Tab 크기를 2로 설정하는 방법 (0) | 2024.06.09 |