Kubernetes
스케줄링, 워크로드, 클러스터 운영에서 부딪힌 것들.
Istio 서비스 메시 6주 스터디 — 주차별 실습 기록
Istio를 실무에 도입하기 전에 6주 동안 스터디하며 로컬 클러스터에 직접 띄워 실습했습니다. KinD와 Bookinfo 예제로 트래픽 라우팅·복원력·mTLS·관찰성·컨트롤 플레인까지, 주차별로 확인한 것들을 정리합니다.
Argo CD Degraded — progressDeadlineSeconds 만료
DESIRED=READY=AVAILABLE인데 콘솔은 ProgressDeadlineExceeded로 Degraded를 표시합니다. 과거에 한 번 타임아웃 난 기록이 안 지워져서 그렇습니다. 파드를 안 건드리고 상태만 재평가시킵니다.
EKS aws-node ipamd 행(hang) — 파드 ContainerCreating 멈춤
Karpenter가 띄운 새 노드에서 모든 파드가 IP를 못 받았습니다. aws-node는 2/2 Running인데 ipamd 프로세스가 초기화 직후 멈춰 있었습니다. 재시작도 안 먹어서 노드를 갈았습니다.
쿠버네티스 오토스케일링 계층 — HPA · KEDA · Karpenter
셋 다 스케일링인데 겹치는 게 아니라 층으로 동작합니다. KEDA가 Pod를 늘리라 하고, 자리가 없으면 Karpenter가 노드를 띄웁니다.
EKS 노드 오토스케일링 — Karpenter vs Cluster Autoscaler
Cluster Autoscaler는 미리 만든 Node Group을 늘립니다. Karpenter는 Pod 요구사항을 보고 EC2를 그 자리에서 고릅니다. 이 차이가 비용과 속도로 이어집니다.
kube-apiserver 복구 — Calico 순환 의존
kubelet이 API 서버를 localhost로 찾고 있었습니다. 거기서 시작해 Calico, CoreDNS, Ingress, FluxCD가 순서대로 무너진 복구 기록.
Traefik Gateway API — 포트 불일치
CrashLoopBackOff로 시작해 404, 그다음엔 Gateway가 Accepted로 안 넘어갔습니다. 증상은 셋 다 다른데 막힌 자리는 매번 포트였습니다.
파드 Pending — volume node affinity 충돌
0/12 nodes are available이 떴는데 노드는 전부 살아 있는 상황. 원인은 EBS 볼륨이 묶여 있는 가용영역이었습니다.
과금 지표 vs 파드 런타임 상태
사용량 로그에 '컨테이너 실행 중'이 찍혀 있어 정상이라 봤는데, 실제 파드는 볼륨을 못 붙여 ContainerCreating에서 멈춰 있었습니다. 그 지표는 요청 시점에 쓰이는 값이지 파드가 떠 있다는 뜻이 아니었습니다.
EKS 서브넷 IP 고갈 — 파드 churn과 WARM_IP_TARGET
부하 테스트로 파드를 빠르게 churn하니 서브넷의 사설 IP가 절대적으로 부족해졌습니다. 삭제된 IP가 바로 안 돌아와서 처음엔 회수 시간을 줄이려 했지만, 진짜 문제는 노드가 안 쓰는 IP를 쥐고 있는 것이었습니다.
RWO PVC 교착 — 삭제 순서와 Multi-Attach
야간 백업 Job과 사용자 재시작이 같은 RWO 볼륨을 두고 부딪혀 파드가 몇 시간씩 멈췄습니다. pvc-protection 파이널라이저, Multi-Attach, 그리고 볼륨은 지워졌는데 살아남은 Deployment까지 겹친 문제.
CronJob JWKS 유실 — 이미지에 없는 도구와 set -e
게이트웨이에서 JWT 검증이 kid not found로 실패했습니다. JWKS를 갱신하는 CronJob이 python3으로 문자열을 가공했는데, kubectl 이미지엔 python3이 없었고 set -e가 없어서 스크립트가 빈 값으로 ConfigMap을 덮었습니다.
FailedAttachVolume — 삭제된 EBS 볼륨 복구
잘 쓰던 파드가 갑자기 안 떴습니다. PV가 가리키는 EBS 볼륨이 실제로는 삭제돼 있었고, 볼륨은 InvalidVolume.NotFound였습니다. 새 볼륨을 만들어 PV를 재생성해 복구했습니다.
검색 결과가 없습니다.