Amazon EKS 시작하기 – `eksctl`
Amazon EKS 시작하기 – eksctl
Note: 이 주제는 EKS Auto Mode 없이 시작하는 내용을 다룹니다. EKS Auto Mode는 클러스터 컴퓨트·스토리지·네트워킹의 일상 작업을 자동화합니다. Amazon EKS Auto Mode 시작 방법을 배우려면 Amazon EKS Auto Mode를 참고하세요.
이 가이드는 Amazon EKS에서 Kubernetes 클러스터를 생성·관리하는 간단한 명령줄 유틸리티인 eksctl을 사용해 Amazon Elastic Kubernetes Service(Amazon EKS)를 시작하는 데 필요한 모든 리소스를 만들도록 도와줍니다. 튜토리얼이 끝나면 애플리케이션을 배포할 수 있는 실행 중인 Amazon EKS 클러스터가 생겨요.
이 가이드의 절차는 AWS Management Console로 클러스터를 만들 때 수동으로 만들어야 하는 여러 리소스를 자동으로 생성합니다. 대부분의 리소스를 수동으로 만들어 서로 어떻게 상호작용하는지 더 잘 이해하고 싶다면 AWS Management Console로 클러스터와 컴퓨트를 만드세요. 자세한 내용은 Get started with Amazon EKS – AWS Management Console and AWS CLI를 참고하세요.
출처: 문서
본문
사전 조건
이 튜토리얼을 시작하기 전에 Set up to use Amazon EKS에 설명된 대로 AWS CLI, kubectl, eksctl 도구를 설치·구성해야 합니다.
1단계: Amazon EKS 클러스터와 노드 생성
Important: 가능한 한 간단하고 빠르게 시작하기 위해 이 주제에는 기본 설정으로 클러스터와 노드를 만드는 단계가 포함되어 있습니다. 프로덕션용 클러스터·노드를 만들기 전에 모든 설정을 숙지하고 요구사항을 충족하는 설정으로 배포하는 것을 권장합니다. 자세한 내용은 Create an Amazon EKS cluster와 Manage compute resources by using nodes를 참고하세요. 일부 설정은 클러스터·노드를 만들 때만 활성화할 수 있습니다.
다음 노드 유형 중 하나로 클러스터를 만들 수 있어요. 각 유형에 대한 자세한 내용은 Manage compute resources by using nodes를 참고하세요. 클러스터 배포 후 다른 노드 유형을 추가할 수 있습니다.
- Fargate – Linux: Simplify compute management with AWS Fargate에서 Linux 애플리케이션을 실행하려면 이 노드 유형을 선택하세요. Fargate는 Amazon EC2 인스턴스를 관리하지 않고 Kubernetes Pod를 배포할 수 있게 해 주는 서버리스 컴퓨트 엔진입니다.
- Managed nodes – Linux: Amazon EC2 인스턴스에서 Amazon Linux 애플리케이션을 실행하려면 이 노드 유형을 선택하세요. 이 가이드에서 다루지는 않지만 Windows 자체 관리형 노드와 Bottlerocket 노드도 클러스터에 추가할 수 있어요.
다음 명령으로 Amazon EKS 클러스터를 만듭니다. my-cluster는 직접 값으로 바꿀 수 있어요. 이름은 영숫자 문자(대소문자 구분)와 하이픈만 포함할 수 있고, 영숫자 문자로 시작해야 하며 100자를 초과할 수 없습니다. 이름은 클러스터를 만드는 AWS 리전과 AWS 계정 내에서 고유해야 합니다. region-code는 Amazon EKS가 지원하는 AWS 리전으로 바꾸세요. AWS 리전 목록은 AWS General Reference 가이드의 Amazon EKS endpoints and quotas를 참고하세요.
Example: 클러스터 생성에는 몇 분이 걸립니다. 생성 중 여러 줄의 출력이 보일 거예요. 마지막 출력 줄은 다음 예시와 유사합니다.
[...]
[✓] EKS cluster "my-cluster" in "region-code" region is ready
eksctl은 컴퓨터의 ~/.kube/config에 kubectl 구성 파일을 만들거나 기존 구성 파일에 새 클러스터 구성을 추가합니다.
클러스터 생성이 완료된 후 AWS CloudFormation 콘솔에서 eksctl-my-cluster-cluster라는 이름의 AWS CloudFormation 스택을 확인해 생성된 모든 리소스를 볼 수 있어요.
2단계: Kubernetes 리소스 보기
클러스터 노드를 봅니다.
kubectl get nodes -o wide
출력 예시는 다음과 같습니다. 출력 내용에 대한 자세한 내용은 AWS Management Console의 View Kubernetes resources를 참고하세요.
클러스터에서 실행 중인 워크로드를 봅니다.
kubectl get pods -A -o wide
출력 예시는 다음과 같습니다. 출력 내용에 대한 자세한 내용은 AWS Management Console의 View Kubernetes resources를 참고하세요.
3단계: 클러스터와 노드 삭제
이 튜토리얼에서 만든 클러스터·노드 사용이 끝나면 다음 명령으로 클러스터와 노드를 삭제해 정리해야 해요. 정리하기 전에 이 클러스터로 더 하고 싶은 것이 있다면 다음 단계(Next steps)를 참고하세요.
eksctl delete cluster --name my-cluster --region region-code
다음 단계
다음 문서 주제는 클러스터의 기능을 확장하는 데 도움을 줍니다.
- 클러스터에 샘플 애플리케이션을 배포합니다.
- 클러스터를 만든 IAM 보안 주체만
kubectl이나 AWS Management Console로 Kubernetes API server에 요청할 수 있습니다. 다른 IAM 보안 주체가 클러스터에 접근하게 하려면 추가해야 해요. 자세한 내용은 Grant IAM users and roles access to Kubernetes APIs와 Required permissions를 참고하세요. - 프로덕션용 클러스터를 배포하기 전에 클러스터·노드의 모든 설정을 숙지하는 것을 권장합니다. 일부 설정(예: Amazon EC2 노드에 대한 SSH 접근 활성화)은 클러스터를 만들 때 해야 합니다.
- 클러스터 보안을 강화하려면 Amazon VPC Container Networking Interface 플러그인이 서비스 계정용 IAM 역할을 사용하도록 구성하세요.