컴포넌트별 마이그레이션 — 10종 애드온을 1.35로
EKS 버전 업그레이드 챕터의 상위 정본 문서들은 “왜 blue-green Terraform으로 1.35까지 가는가"를 다뤘습니다. 이 하위 섹션은 그 위에서 실제로 워크로드 위에 올라간 애드온 10종을 어떻게 목표 버전까지 올리는가를 다룹니다. 대상은 karpenter·istio·argocd·argo-rollouts·external-secrets·keda·aws-load-balancer-controller·victoria-metrics-k8s-stack(+metrics-server·kube-state-metrics·node-exporter)·descheduler·fluentbit — 클러스터 설정·managed addon이 다루는 EKS 자체 관리형 애드온(vpc-cni·kube-proxy·coredns·ebs-csi)은 이 섹션 밖입니다.
- 전부 blue-green 신규 클러스터라 목표 버전 직행 설치입니다 — 기존 클러스터 in-place처럼 마이너를 한 단계씩 밟는 conversion 체인이 필요 없습니다
✓ - umbrella 서브차트로 배포되는 컴포넌트(external-secrets·aws-load-balancer-controller·argo-rollouts)는 독립 bump가 불가능 —
yo-charts쪽 umbrellaChart.yaml의 dependency 핀을 리워크하고 ECR에 재퍼블리시해야 targetRevision 변경이 의미가 있습니다✓ - 이번 이관의 최대 CRD 경계는 두 곳 — karpenter
v1beta1→v1(NodePool/EC2NodeClass), external-secretsv1beta1→v1(ExternalSecret/SecretStore, 매니페스트 전량 재작성)✓ - ECR 미러 태그를 사전에 확보하지 않으면 배포 즉시 ImagePullBackOff입니다 — 다수 컴포넌트가 이미지 태그를 명시 핀하지 않고 차트 기본값을 그대로 상속하므로 차트 버전만 올려도 이미지가 자동으로 몇 년치 점프합니다(victoria-metrics-k8s-stack·fluentbit가 대표적)
✓
이 섹션의 소스는 3기(2026-07) 조사 당시 개별 컴포넌트별로 작성된 업그레이드 노트 10종입니다. 대부분 k8s 1.33을 목표로 조사됐으나 상위 결정이 1.35로 상향됐습니다. 이 섹션의 모든 페이지는 1.35 기준으로 버전을 통일해 서술합니다. 원 조사가 1.33 기준이었던 항목(특히 external-secrets·descheduler)은 “이전 조사(1.33 기준)“로 명기하고 1.35 값을 별도로 확정합니다. 조사 시점은 2026-07입니다.
색인
- karpenter · 0.36.2 → 1.14.0 — v1beta1→v1 CRD 마이그레이션 +
amiSelectorTerms필수화·drift 강제 ON - istio · (라이브 미확인) → 1.30.3 — sidecar 유지(ambient 금지) 전제로 native sidecar·차트 통합 대응. 경로는 1.35 신규 클러스터 직행으로 확정됐습니다(green 은 k8s 1.31 이라 istio 1.30 하한 1.32 에 막힙니다). 라이브 버전 미확인은 홉 산정을 blocking 하지 않고 green↔blue values parity 대조용으로 남습니다
- argocd (spoke) · 7.5.2(v2.12) → 10.1.4(v3.4.5) — 2.14→3.0 breaking 밀집(logs RBAC·SSA 필수) + 허브 버전 미확인
- argo-rollouts · 2.37.2(v1.7.1) → 2.41.1(v1.9.1) — CVE-2026-35469(HIGH DoS) 수정 + istio canary weight 순서 변화, umbrella 커플링
- external-secrets · 0.9.20 → 2.8.x(이전 조사 0.19.2) — CRD v1beta1→v1 전량 재작성 + umbrella 리워크(fresh 설치로 마이그레이션 우회)
- keda · 2.10.2 → 2.20.1 — admission webhook 검증 강화로 기존 ScaledObject dry-run 선행 필요
- aws-load-balancer-controller · chart 1.8.1(v2.8.x) → chart 3.4.2(v3.4.2) — IAM 정책 8액션 추가 + umbrella 리워크 선행
- victoria-metrics-k8s-stack · 0.19.4 → 0.87.0 — 이미지 태그 미핀으로 자동 점프 + CRD 스키마 개편(sync-job egress 리스크)
- metrics-server · v0.7.2 → v0.9.0 — raw manifest 배포라 ArgoCD/Helm 인벤토리에 안 잡힘(누락 아님)
- fluentbit(aws-for-fluent-bit) · chart 0.1.34 → chart 0.2.0 — 이미지 태그 미핀 → FB 1.9.10→4.2.2·AL2→AL2023 major 점프
- descheduler · 0.28.0 → 0.35.x(이전 조사 0.33.x) —
strategies블록이 v1alpha1 잔재로 무시 중일 가능성 — 보존/복원 팀 결정 필요
여섯 페이지가 같은 골격을 씁니다 — 왜 이 버전인가 → 무엇이 깨지나 → 적용 절차 → 검증과 롤백 → 근거. 컴포넌트가 하나인 페이지(karpenter·istio·aws-load-balancer-controller)는 이 넷을 번호 절로 폅니다. 여럿인 페이지(argocd+argo-rollouts / external-secrets+keda / 관측성 4종)는 컴포넌트를 번호 절로 두고 그 안에 같은 순서의 소절을 넣습니다. 위험 서술은 본문이 맡고 검증과 롤백의 체크박스는 배포 전 결정·확인 / 배포 후 검증 / 롤백 세 그룹의 행동 게이트만 담습니다 — 본문 서술을 체크리스트에서 되풀이하지 않습니다. 공식 문서 URL·CVE 번호·공개 GitHub 이슈 번호는 검증 가능하도록 그대로 보존했습니다. 계정 ID·내부 endpoint·VPC/subnet ID·사람 이름·Slack/Jira/Confluence 링크는 마스킹하거나 제거했습니다.
우리 케이스에서는
10종 중 8종이 umbrella 서브차트 아니면 태그 미핀이라는 함정 중 하나에 걸립니다. external-secrets·aws-load-balancer-controller·argo-rollouts는 cluster-bootstrap-v2 umbrella의 서브차트라 ArgoCD targetRevision 하나만 올려서는 아무 일도 안 일어납니다. yo-charts 쪽 Chart.yaml dependency를 고쳐 새 차트를 퍼블리시해야 합니다. victoria-metrics-k8s-stack·fluentbit·keda·karpenter는 컴포넌트 이미지 태그를 명시 핀하지 않아 차트 버전을 올리는 순간 이미지가 차트 기본값(=대개 최신)으로 자동 점프합니다 — 편리하지만 사전에 ECR 미러에 그 태그가 없으면 즉시 ImagePullBackOff입니다. 두 함정 모두 blue-green 신규 클러스터라서 드러나는 게 아니라 원래부터 있던 구조입니다. 신규 설치 시점에 한꺼번에 터진다는 점이 이 섹션 전체를 관통하는 리스크입니다. 배포 순서는 클러스터 설정의 부트스트랩 순서를 따르고 ECR 미러 인벤토리는 클러스터 부트스트랩과 함께 확인합니다. 시점 기준 2026-07.