Amazon EKS Auto Mode 클러스터에 샘플 inflate 워크로드 배포하기
Amazon EKS Auto Mode 클러스터에 샘플 inflate 워크로드 배포하기
이 튜토리얼에서는 EKS Auto Mode 클러스터에 샘플 워크로드를 배포하고 필요한 컴퓨트 리소스를 자동으로 프로비저닝하는 방법을 관찰하는 법을 배웁니다. kubectl 명령으로 클러스터의 동작을 지켜보고 Auto Mode가 AWS에서 Kubernetes 운영을 얼마나 단순화하는지 직접 확인할 수 있어요. 튜토리얼이 끝나면 EKS Auto Mode가 수동 노드 그룹 구성 없이 기반 컴퓨트 리소스를 자동으로 관리하며 워크로드 배포에 어떻게 대응하는지 이해하게 됩니다.
출처: 문서
본문
사전 조건
- Amazon EKS Auto Mode 클러스터. 클러스터의 이름과 AWS 리전을 기록하세요.
- 네트워킹, 컴퓨트, EKS 리소스를 관리할 충분한 권한이 있는 IAM 보안 주체(사용자 또는 역할). 자세한 내용은 IAM User Guide의 Creating roles and attaching policies를 참고하세요.
- IAM 아이덴티티로
awsCLI가 설치·구성되어 있어야 합니다. kubectlCLI가 설치되고 클러스터에 연결되어 있어야 합니다.
자세한 내용은 Set up to use Amazon EKS를 참고하세요.
1단계: 기존 컴퓨트 리소스 검토(선택)
먼저 kubectl로 클러스터의 노드 풀을 나열합니다.
kubectl get nodepools
샘플 출력:
general-purpose
이 튜토리얼에서는 general-purpose 노드 풀을 사용하도록 구성된 워크로드를 배포할 거예요. 이 노드 풀은 EKS Auto Mode에 내장되어 있으며 마이크로서비스, 웹 앱 같은 일반 워크로드에 합리적인 기본값을 포함합니다. 자체 노드 풀을 만들 수도 있어요. 자세한 내용은 Create a Node Pool for EKS Auto Mode를 참고하세요.
다음으로 kubectl로 클러스터에 연결된 노드를 나열합니다.
kubectl get nodes
EKS Auto Mode 클러스터를 방금 만들었다면 노드가 없을 거예요. 이 튜토리얼에서는 샘플 워크로드를 배포합니다. 노드가 없거나 워크로드가 기존 노드에 맞지 않으면 EKS Auto Mode가 새 노드를 프로비저닝합니다.
2단계: 클러스터에 샘플 애플리케이션 배포
다음 Kubernetes Deployment를 검토하고 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 이벤트 보기
다음 명령으로 새 노드 생성 등을 포함한 Kubernetes 이벤트를 지켜봅니다. 이벤트 보기를 중지하려면 ctrl+c를 사용하세요.
kubectl get events -w --sort-by '.lastTimestamp'
kubectl로 클러스터에 연결된 노드를 다시 나열합니다. 새로 생성된 노드를 확인하세요.
kubectl get nodes
4단계: AWS 콘솔에서 노드와 인스턴스 보기
EKS 콘솔에서 EKS Auto Mode 노드를, EC2 콘솔에서 관련 EC2 인스턴스를 볼 수 있어요. EKS Auto Mode가 배포한 EC2 인스턴스는 제한됩니다. EKS Auto Mode 노드에서 임의의 명령을 실행할 수 없습니다.
5단계: 배포 삭제
kubectl로 샘플 배포를 삭제합니다.
kubectl delete -f inflate.yaml
클러스터에 배포된 다른 워크로드가 없다면 EKS Auto Mode가 만든 노드는 비어 있게 됩니다. 기본 구성에서 EKS Auto Mode는 30초 동안 비어 있던 노드를 감지해 종료합니다. kubectl 또는 EC2 콘솔로 연결된 인스턴스가 삭제되었는지 확인합니다.