1. EKS Auto Mode란EKS Auto Mode는 컨트롤 플레인뿐 아니라 데이터 플레인까지 AWS가 관리하는 EKS 운영 모드다. 2024년 12월 1일 re:Invent 2024에서 GA로 발표됐고, 쿠버네티스 1.29 이상 클러스터에서 쓸 수 있다. EKS를 운영해 본 사람이라면 "컨트롤 플레인만 매니지드"라는 표현이 충분하지 않다고 느낀 경험이 있을 것이다. 컨트롤 플레인 아래에는 운영자가 직접 챙겨야 할 영역이 두텁게 쌓여 있다. 노드 그룹 운영, OS 패치, Karpenter Helm 차트 관리, VPC CNI와 CoreDNS와 EBS CSI 데몬셋, AWS Load Balancer Controller 설치와 IRSA 매핑, 보안 패치 주기마다의 노드 교체 같은 일이다. Auto Mode..
AWS
AWS 워크샵 EKS Upgrades(catalog.workshops.aws/eks-upgrades) 환경을 제공해주셔서 그대로 따라가며 정리한다. 워크샵은 1.30 → 1.31 한 단계 인플레이스 업그레이드를 컨트롤 플레인 → 애드온 → 4가지 노드 타입 순으로 수행한다.1. 개요1.1 EKS 업그레이드의 책임 분담EKS 업그레이드에서 가장 먼저 잡고 가야 하는 개념은 공동 책임 모델이다. 컨트롤 플레인 컴포넌트(API Server · etcd · Scheduler · Controller Manager)는 AWS의 관리 VPC에서 동작하며, 그 가용성·백업·패치·고가용성 토폴로지는 모두 AWS가 보장한다. 반면 그 위에서 동작하는 데이터 플레인(워커 노드, kubelet, kube-proxy, CNI,..
1. 개요이번 AEWS4 6주차는 감사하게도, Amazon EKS 기반 확장 가능한 멀티 테넌트 SaaS 플랫폼 구축이라는 AWS 워크샵 환경을 제공해주셔서 워크샵 내용을 정리해본다.GitOps 기반으로 SaaS 플랫폼을 구축하는 워크샵이며, 기존에는 ArgoCD 도구만 사용해봤던 입장에서 이번에는 FluxCD를 다뤄본다.2. 워크샵 실습 아키텍처실습에 사용되는 대표적인 도구들이다.도구카테고리역할Giteaself-hosted GitGitOps의 단일 진실 원천(Single Source of Truth)Flux v2GitOps 컨트롤러Git → cluster reconciliation. 본 워크샵의 메인 GitOps 엔진TF-ControllerFlux 생태계 IaC 컨트롤러Terraform CRD를 K8s..
1. 같은 에러, 다른 원인IRSA는 한 번 잘 세팅해 두면 거의 신경 쓸 일이 없다. 문제는 "한 번 잘 세팅해 두면"이라는 전제다. 클러스터를 새로 만들거나 ServiceAccount를 옮기거나 IAM Role을 재생성하는 순간 IRSA는 조용히 깨진다. 겉으로 Pod는 정상 기동하고 readiness probe도 통과한다. 그런데 AWS API 호출만 실패한다. 로그에는 다음과 같은 메시지가 반복된다.An error occurred (AccessDenied) when calling the AssumeRoleWithWebIdentityoperation: Not authorized to perform sts:AssumeRoleWithWebIdentity에러 메시지만 보면 모든 사례가 같아 보인다. 하지..
1. Pod에서 AWS API를 호출하면 무슨 일이 생기나컨테이너 안에 AWS Access Key를 넣는 건 위험하다. 이미지가 유출되면 키도 같이 나간다. 그렇다고 노드의 IAM Role을 그대로 쓰면 모든 Pod가 동일한 권한을 갖게 된다. 개발팀이 원하는 건 "런타임에서 자격증명이 자동으로 주입되면서도 Pod 단위로 최소 권한이 적용되는 것"이다.1.1 노드 IAM Role 공유의 문제서비스 어카운트를 마운트하지 않은 Pod를 하나 만들어 보자.cat 로그를 확인하면 AccessDenied가 뜬다.kubectl logs eks-iam-test1# An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denie..
EKS에서 워크로드를 운영하려면 두 가지를 결정해야 한다. 어디서 실행할 것인가(컴퓨팅)와 얼마나 실행할 것인가(오토스케일링). 3주차에서는 관리형 노드 그룹으로 컴퓨팅 옵션을 살펴보고 HPA부터 Karpenter까지 여러 스케일링 방법을 실습한다.0. 실습 환경 구성Terraform으로 EKS 클러스터를 배포한다. 이번 실습 환경의 변경점은 k8s 1.35 버전 사용과 워커노드 Private Subnet 배치, SSM 접속 지원이다. add-on으로 metrics-server와 external-dns가 포함되어 있다.# 코드 다운로드git clone https://github.com/gasida/aews.gitcd aews/3w# IAM Policy 파일 작성curl -o aws_lb_controlle..
실습 환경이번 실습은 Terraform으로 배포한 EKS 클러스터에서 진행했다. 퍼블릭 서브넷 3개에 t3.medium 워커 노드 3대를 배치하고, VPC CNI의 다양한 IP 할당 모드와 로드밸런서 동작을 확인한다.클러스터myeks (EKS, Terraform 배포)리전ap-northeast-2VPC CIDR192.168.0.0/16서브넷퍼블릭 3개 + 프라이빗 3개노드 그룹t3.medium × 3대 (ENI 3개, ENI당 IP 6개)CNIAWS VPC CNI (기본 설치)노드 배포 상태는 아래 명령으로 확인할 수 있다:# 노드 확인aws ec2 describe-instances --query "Reservations[*].Instances[*].{PublicIPAdd:PublicIpAddress,P..
1. EKS = AWS 리소스의 집합 Amazon EKS(Elastic Kubernetes Service)는 AWS의 완전관리형 Kubernetes 서비스다. 컨트롤 플레인을 AWS가 운영하므로 사용자는 워크로드에 집중하면 된다. 완전관리형이란? Kubernetes 컨트롤 플레인은 API 서버, etcd, 스케줄러, 컨트롤러 매니저로 구성된다. 직접 구축하면 etcd 클러스터링, API 서버 이중화, 인증서 로테이션 같은 운영 부담이 상당하다. EKS는 이를 대신 처리하고 99.95% SLA를 보장한다. 대신 시간당 $0.10의 클러스터 비용이 발생한다.직접 구축(kubeadm 등)과 비교하면 EKS가 대신하는 범위가 명확하다.etcd 3대 클러스터링 + 백업/복구3 AZ 분산, 자동 백업API 서버 이..
