디버깅에서 가장 비싼 건 틀린 가설을 붙들고 있는 시간이다
ArgoCD·NFS·부하테스트에서 틀린 가설에 며칠씩 쓴 경험으로, 가설을 버릴 시점과 그 가설로 바꾼 것을 치우는 법을 정리했다.
ArgoCD·NFS·부하테스트에서 틀린 가설에 며칠씩 쓴 경험으로, 가설을 버릴 시점과 그 가설로 바꾼 것을 치우는 법을 정리했다.
CPU 실사용 2%인데 노드가 꽉 찬 원인은 requests 합이었고, 이를 줄이려면 JVM 힙·HPA 메모리 지표·PDB를 함께 풀어야 했다.
티어 스팟 옵션을 설계하다 중단 이벤트가 커스텀 버스로 오지 않는 함정 등 네 가지를 찾았고, 구현 대신 운영팀용 가이드로 넘겼다.
Karpenter 노드 정리가 배포 도중 끼어들어 40분 걸리던 테넌트 배포를 7분으로 줄였다. 정리는 끄지 않고 대기 시간을 늘렸고, 그 뒤 확인한 Pod 몰림도 막았다.
HPA는 1분 안에 Pod를 늘렸지만 Spring Boot Pod가 트래픽을 받기까지 약 3분이 걸려 90초 부하에서는 오류가 났다
앱 하나를 비활성화하자 다른 앱 Pod가 재시작됐다. ArgoCD가 아니라 Karpenter의 노드 정리였고, PDB를 고치고 바꾼 구조는 되돌렸다.