

 **이 페이지 개선에 도움 주기** 

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **GitHub에서 이 페이지 편집** 링크를 선택합니다.

# kubectl을 사용하여 Karpenter에서 EKS Auto Mode로 마이그레이션
<a name="auto-migrate-karpenter"></a>

이 주제에서는 kubectl을 사용하여 Karpenter에서 Amazon EKS Auto Mode로 워크로드를 마이그레이션하는 프로세스를 안내합니다. 마이그레이션을 점진적으로 수행할 수 있으므로 전환 기간 동안 클러스터 안정성과 애플리케이션 가용성을 유지하면서 원하는 속도로 워크로드를 이동할 수 있습니다.

아래에 설명된 단계별 접근 방식을 사용하면 마이그레이션 기간에 Karpenter와 EKS Auto Mode를 나란히 실행할 수 있습니다. 이러한 이중 작업 전략은 Karpenter를 완전히 폐기하기 전에 EKS Auto Mode에서 워크로드 동작을 검증할 수 있게 하여 원활한 전환을 보장하는 데 도움이 됩니다. 애플리케이션을 개별적으로 또는 그룹으로 마이그레이션하여 특정 운영 요구 사항과 위험 허용 범위를 유연하게 수용할 수 있습니다.

## 사전 조건
<a name="_prerequisites"></a>

마이그레이션을 시작하기 전에 다음이 있는지 확인합니다.
+ 클러스터에 Karpenter v1.1 이상이 설치되어 있습니다. 자세한 내용은 Karpenter 설명서의 [Upgrading to 1.1.0\+](https://karpenter.sh/docs/upgrading/upgrade-guide/#upgrading-to-110)를 참조하세요.
+  `kubectl`이 설치되고 클러스터에 연결되었습니다. 자세한 내용은 [Amazon EKS를 사용하도록 설정](setting-up.md) 섹션을 참조하세요.

이 주제에서는 사용자가 Karpenter 및 NodePools를 잘 알고 있다고 가정합니다. 자세한 내용은 [Karpenter Documentation](https://karpenter.sh/)를 참조하세요.

## 1단계: 클러스터에서 EKS Auto Mode 활성화
<a name="_step_1_enable_eks_auto_mode_on_the_cluster"></a>

AWS CLI 또는 관리 콘솔을 사용하여 기존 클러스터에서 EKS Auto Mode를 활성화합니다. 자세한 내용은 [기존 클러스터에서 EKS Auto Mode 활성화](auto-enable-existing.md) 섹션을 참조하세요.

**참고**  
EKS Auto Mode를 활성화하는 동안 전환 중에 이 단계에서 `general purpose` 노드 풀을 활성화하지 마세요. 이 노드 풀은 선택 사항이 아닙니다.  
자세한 내용은 [내장 NodePools 활성화 또는 비활성화](set-builtin-node-pools.md) 섹션을 참조하세요.

## 2단계: 테인트된 EKS Auto Mode NodePool 생성
<a name="_step_2_create_a_tainted_eks_auto_mode_nodepool"></a>

테인트가 있는 EKS Auto Mode용 새 NodePool을 생성합니다. 이렇게 하면 기존 포드가 새 EKS Auto Mode 노드에서 자동으로 예약되지 않습니다. 이 노드 풀은 EKS Auto Mode에 내장된 `default` `NodeClass`를 사용합니다. 자세한 내용은 [Amazon EKS용 노드 클래스 생성](create-node-class.md) 섹션을 참조하세요.

테인트가 있는 노드 풀 예제:

```
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: eks-auto-mode
spec:
  template:
    spec:
      requirements:
        - key: "eks.amazonaws.com/instance-category"
          operator: In
          values: ["c", "m", "r"]
      nodeClassRef:
        group: eks.amazonaws.com
        kind: NodeClass
        name: default
      taints:
        - key: "eks-auto-mode"
          effect: "NoSchedule"
```

마이그레이션의 소스에 해당하는 Karpenter 구성과 일치하도록 노드 풀의 요구 사항을 업데이트합니다. 하나 이상의 요구 사항이 필요합니다.

## 3단계: 마이그레이션할 워크로드 업데이트
<a name="_step_3_update_workloads_for_migration"></a>

EKS Auto Mode로 마이그레이션하려는 워크로드를 식별하고 업데이트합니다. 이러한 워크로드에 허용 값과 노드 선택기를 모두 추가합니다.

```
apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      tolerations:
      - key: "eks-auto-mode"
        effect: "NoSchedule"
      nodeSelector:
        eks.amazonaws.com/compute-type: auto
```

이 변경 사항을 통해 새 EKS Auto Mode 노드에서 워크로드를 예약할 수 있습니다.

EKS Auto Mode는 Karpenter와 다른 레이블을 사용합니다. EC2 관리형 인스턴스와 관련된 레이블은 `eks.amazonaws.com`으로 시작합니다. 자세한 내용은 [EKS Auto Mode용 노드 풀 생성](create-node-pool.md) 섹션을 참조하세요.

## 4단계: 점진적으로 워크로드 마이그레이션
<a name="_step_4_gradually_migrate_workloads"></a>

마이그레이션하려는 각 워크로드에 대해 3단계를 반복합니다. 이를 통해 요구 사항 및 위험 허용 범위에 따라 워크로드를 개별적으로 또는 그룹으로 이동할 수 있습니다.

## 5단계: 원래 Karpenter NodePool 제거
<a name="_step_5_remove_the_original_karpenter_nodepool"></a>

모든 워크로드가 마이그레이션되면 원래 Karpenter NodePool을 제거할 수 있습니다.

```
kubectl delete nodepool <original-nodepool-name>
```

## 6단계: EKS Auto Mode NodePool에서 테인트 제거(선택 사항)
<a name="_step_6_remove_taint_from_eks_auto_mode_nodepool_optional"></a>

EKS Auto Mode가 새 워크로드의 기본값이 되게 하려면 EKS Auto Mode NodePool에서 테인트를 제거할 수 있습니다.

```
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: eks-auto-mode
spec:
  template:
    spec:
      nodeClassRef:
        group: eks.amazonaws.com
        kind: NodeClass
        name: default
      # Remove the taints section
```

## 7단계: 워크로드에서 노드 선택기 제거(선택 사항)
<a name="_step_7_remove_node_selectors_from_workloads_optional"></a>

EKS Auto Mode NodePool에서 테인트를 제거한 경우 이제 EKS Auto Mode가 기본값이므로 선택적으로 워크로드에서 노드 선택기를 제거할 수 있습니다.

```
apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      # Remove the nodeSelector section
      tolerations:
      - key: "eks-auto-mode"
        effect: "NoSchedule"
```

## 8단계: 클러스터에서 Karpenter 제거
<a name="_step_8_uninstall_karpenter_from_your_cluster"></a>

Karpenter를 제거하는 단계는 설치 방법에 따라 다릅니다. 자세한 내용은 [Karpenter 설치 지침](https://karpenter.sh/docs/getting-started/getting-started-with-karpenter/#create-a-cluster-and-add-karpenter)을 참조하세요.