

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

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

# Amazon EKS Auto Mode 클러스터에 샘플 팽창 워크로드 배포
<a name="automode-workload"></a>

이 자습서에서는 EKS Auto Mode 클러스터에 샘플 워크로드를 배포하고 필요한 컴퓨팅 리소스를 자동으로 프로비저닝하는 방법을 알아봅니다. `kubectl` 명령을 사용하여 클러스터의 동작을 관찰하고 Auto Mode가 AWS에서 Kubernetes 작업을 간소화하는 방법을 직접 확인할 수 있습니다. 이 자습서를 마치면 수동 노드 그룹 구성 없이 기본 컴퓨팅 리소스를 자동으로 관리하여 EKS Auto Mode가 워크로드 배포에 대응하는 방식을 이해할 수 있습니다.

## 사전 조건
<a name="_prerequisites"></a>
+ Amazon EKS 자동 모드 클러스터. 클러스터의 이름과 AWS 리전을 기록해 둡니다.
+ IAM 보안 주체가 네트워킹, 컴퓨팅, EKS 리소스를 관리할 수 있는 충분한 권한이 있는 사용자 또는 역할입니다.
  + 자세한 내용은 IAM 사용 설명서의 [Creating roles and attaching policies in the IAM User Guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions_create-policies.html)을 참조하세요.
+  `aws` CLI가 IAM 자격 증명으로 설치 및 구성되었습니다.
+  `kubectl` CLI가 설치되고 클러스터에 연결되었습니다.
  + 자세한 내용은 [Amazon EKS를 사용하도록 설정](setting-up.md) 섹션을 참조하세요.

## 1단계: 기존 컴퓨팅 리소스 검토(선택 사항)
<a name="_step_1_review_existing_compute_resources_optional"></a>

먼저 `kubectl`을 사용하여 클러스터의 노드 풀을 나열합니다.

```
kubectl get nodepools
```

샘플 출력:

```
general-purpose
```

이 자습서에서는 `general-purpose` 노드 풀을 사용하도록 구성된 워크로드를 배포합니다. 이 노드 풀은 EKS Auto Mode에 내장되어 있으며 마이크로서비스 및 웹 앱과 같은 일반 워크로드에 대한 합리적인 기본값을 포함합니다. 자체 노드 풀을 생성할 수 있습니다. 자세한 내용은 [EKS Auto Mode용 노드 풀 생성](create-node-pool.md) 섹션을 참조하세요.

둘째, `kubectl`을 사용하여 클러스터에 연결된 노드를 나열합니다.

```
kubectl get nodes
```

방금 EKS Auto Mode 클러스터를 생성한 경우 노드가 없습니다.

이 자습서에서는 샘플 워크로드를 배포합니다. 노드가 없거나 워크로드가 기존 노드에 맞지 않는 경우 EKS Auto Mode가 새 노드를 프로비저닝합니다.

## 2단계: 클러스터에 샘플 애플리케이션 배포
<a name="_step_2_deploy_a_sample_application_to_the_cluster"></a>

다음 Kubernetes 배포를 검토하고 `inflate.yaml`로 저장합니다.

```
apiVersion: apps/v1
kind: Deployment
metadata:
  name: inflate
spec:
  replicas: 1
  selector:
    matchLabels:
      app: inflate
  template:
    metadata:
      labels:
        app: inflate
    spec:
      terminationGracePeriodSeconds: 0
      nodeSelector:
        eks.amazonaws.com/compute-type: auto
      securityContext:
        runAsUser: 1000
        runAsGroup: 3000
        fsGroup: 2000
      containers:
        - name: inflate
          image: public.ecr.aws/eks-distro/kubernetes/pause:3.7
          resources:
            requests:
              cpu: 1
          securityContext:
            allowPrivilegeEscalation: false
```

`eks.amazonaws.com/compute-type: auto` 선택기를 사용하려면 Amazon EKS Auto Mode 노드에 워크로드를 배포해야 합니다.

배포를 클러스터에 적용합니다.

```
kubectl apply -f inflate.yaml
```

## 3단계: Kubernetes 이벤트 보기
<a name="_step_3_watch_kubernetes_events"></a>

다음 명령을 사용하여 새 노드 생성을 포함한 Kubernetes 이벤트를 관찰합니다. `ctrl+c`를 사용하여 이벤트 시청을 중지합니다.

```
kubectl get events -w --sort-by '.lastTimestamp'
```

`kubectl`을 사용하여 클러스터에 연결된 노드를 다시 나열합니다. 새로 생성된 노드를 기록해 둡니다.

```
kubectl get nodes
```

## 4단계: AWS 콘솔에서 노드 및 인스턴스 보기
<a name="step_4_view_nodes_and_instances_in_the_shared_aws_console"></a>

EKS 콘솔에서 EKS Auto Mode 노드를 보고 EC2 콘솔에서 연결된 EC2 인스턴스를 볼 수 있습니다.

EKS Auto Mode에서 배포한 EC2 인스턴스는 제한됩니다. EKS Auto Mode 노드에서는 임의의 명령을 실행할 수 없습니다.

## 5단계: 배포 삭제
<a name="_step_5_delete_the_deployment"></a>

`kubectl`을 사용하여 샘플 배포를 삭제합니다.

```
kubectl delete -f inflate.yaml
```

클러스터에 배포된 다른 워크로드가 없는 경우 EKS Auto Mode에서 생성한 노드는 비어 있습니다.

기본 구성에서 EKS Auto Mode는 30초 동안 비어 있는 노드를 감지하고 종료합니다.

`kubectl` 또는 EC2 콘솔을 사용하여 연결된 인스턴스가 삭제되었는지 확인합니다.