EKS 처음 설치한다면 - 스토리지, 노드 그룹

Jerry·2025년 2월 18일
1

가시다님 EKS 스터디 참여하고 내용을 정리합니다.

EKS 처음 설치한다고 가정하면 어떻게 설치하는것이 Best Practice일까 고민을 많이 한다. 항상 그렇듯이 현재 설정은 무언가 아쉽고 불만이다. 하지만 막상 변경하려고 하면 이런저런 고민을 핑계로 미룬다.

처음할 때 제대로 하는게 당연히 좋다. 내 경험이 비록 제한이 많지만 그래도 실제 경험은 항상 소중하니, 혹시 새롭게 구성하는 사람들에게 작은 도움이 될까봐 정리해봅니다.

스토리지와 노드 그룹 설정에 대하여 정리합니다.

===============================

  • Add-on 이용 EBS CSI Driver 설치
    가능하면 IRSA 대신 Pod Identity 이용
    사용 예시

EBS CSI Driver 아키텍처

출처 : https://malwareanalysis.tistory.com/598 
  • gp3 storage class 생성
    default storage class, Reclaimpolicy - Delete 지정, volumeExpansion - true 옵션 지정
(eks_dive-dev:argo)dev$ kubectl get sc
NAME                     PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
ebs-gp3-ext4 (default)   ebs.csi.aws.com         Delete          WaitForFirstConsumer   true                   3y36d
  • eks 환경에서 스테이트풀 애플리케이션 운영 중
    prometheus, loki 등
    kafka, redis, es 등은 개발 환경은 eks에 직접 설치, 운영 환경은 aws managed 서비스 msk, elasticache, opensearch 등 사용 중

  • 장점 : 비용 저렴, 대부분의 애플리케이션이 기본 데이터 3중화로 구성되어 안정적인 운영 가능, ec2 환경에 비하여 설치 및 관리가 용이
    단점 : managed 서비스에 비하여 백업, 패치 업그레이드 등의 추가 운영 지식이 필요
    EC2, VM에 관리하는 것보다 EKS, 쿠버네티스 관리가 훨씬 낫다고 생각함

  • Add-on 이용 Amazon EFS CSI Driver 설치
    AI 환경의 용량이 큰 AI 이미지의 저장 용도로 사용 하였음

  • 필요 시 Add-on 이용 CSI Snapshot Controller 설치
    아직 사용하지 않음
    PVC 데이터를 주기적으로 Snapshot을 이용하여 백업 가능

  • EKS 제공 매니지드 노드 그룹 사용하지 않음
    Karpenter 노드풀 이용
    Karpenter 파드는 Fargate 노드 배포

  • ARM CPU 노드 사용
    AMD CPU에 비하여 20% 이상 저렴하고 인스턴스 교체 주기가 빨라 추가 성능 향상 효과 기대
    현재 AMD to ARM 이전 작업 중

  • 이미지 빌드 시 단일 플랫폼(not multi platform 빌드) 빌드 고려 중
    multi 빌드는 시간이 오래 걸림

  • 운영 체제 Amazon Linux 2023
    현재 Amazon Linux 2 사용 중(25년 연말 업그레이드 예정)
    Karpenter 이용하여 최신 보안 패치가 적용된 OS로 주기적으로 교체

  • Spot 노드 그룹 사용
    실패 시 재실행이 가능한 배치잡 파드 실행 용도 용도
    Dev 환경은 전체 파드를 Spot 노드 그룹으로 운영하였으나 m7i 등 특정 인스턴스 타입은 노드 교체 횟수가 매우 잦고 특정 시점에는 노드 스케줄 자체가 되지 않는 현상이 발생하여 on-demand로 변경
    Saving Plan(30% 할인) 적용하면 Spot(70%)에 비하여 차이가 아주 크지는 않음
    Spot이 어느정도 안정적(예를 들어 1주일에 1번 정도)으로 운영이 가능하면 적극 고려 가능

참조

  • 데몬셋 사용 현황
amazon-guardduty   aws-guardduty-agent                                          11        11        11      11           11          <none>                     46d
kube-system        aws-node                                                     11        11        11      11           11          <none>                     2y122d
kube-system        csi-secrets-store-secrets-store-csi-driver                   4         4         4       4            4           kubernetes.io/os=linux     46d
kube-system        ebs-csi-node                                                 11        11        11      11           11          kubernetes.io/os=linux     7d22h
kube-system        ebs-csi-node-windows                                         0         0         0       0            0           kubernetes.io/os=windows   7d22h
kube-system        kube-proxy                                                   11        11        11      11           11          <none>                     3y36d
kube-system        secrets-provider-aws-secrets-store-csi-driver-provider-aws   4         4         4       4            4           kubernetes.io/os=linux     46d
monitoring         loki-canary                                                  10        10        10      10           10          <none>                     125d
monitoring         prometheus-prometheus-node-exporter                          11        11        11      11           11          kubernetes.io/os=linux     453d
monitoring         promtail                                                     11        11        11      11           11          <none>                     454d
profile
도서 <24단계 실습으로 정복하는 쿠버네티스> 저자. 쿠버네티스/EKS 관련 문의 erdia22@gmail.com.

0개의 댓글