jsPDF 사용 시 발생하는 CORS 오류와 해결 방법 외부 라이브러리인 jsPDF를 활용해 PDF 파일을 생성하려 할 때, 다음과 같은 CORS 오류가 발생한 경험이 있으신가요? 이 오류는 단순히 스크립트를 잘못 불러온 문제가 아니라, 브라우저의 보안 정책(CORS 정책)에 의해 외부 스크립트 로딩 방식이 잘못되었을 때 발생합니다. 오류 원인 분석 브라우저는 보안을 더 읽기
Kubernetes CronJob 실패 원인 분석 및 해결: [BackoffLimitExceeded] 에러 대응법
Kubernetes CronJob 실행 실패: [BackoffLimitExceeded] 원인과 해결 문제 현상 Rancher UI 또는 kubectl describe job 명령어를 통해 아래와 같은 메시지가 확인됨: [BackoffLimitExceeded] Job has reached the specified backoff limit
원인 분석
디버깅 접근 kubectl run debug-batch –rm -it –image=123456789012.dkr.ecr.region.amazonaws.com/sample-image:tag — bash
해결 방법 1. Pod 삭제 더 읽기
Spring Batch 작업을 Kubernetes CronJob으로 병렬 처리할 때의 고려사항과 커넥션 오류 대응 전략
1. Spring Batch를 Kubernetes CronJob에서 병렬로 실행하려는 시나리오
2. HikariCP 경고: “Apparent connection leak detected”
3. MyBatis 쿼리가 길어질 때 INSERT 타임아웃 처리 @Options(timeout = 5)void insertMyData(@Param(“list”) List<MyDto> list);
4. 커넥션 오류 예외 예시 (Unknown thread id)
5. 기존 Step을 Partitioning Step으로 전환할 수 있는가?
EKS Kubernetes CronJob의 노드 분산 원리: 스케줄러 점수 기반 배치 완전 이해하기
본문 요약 (개요 흐름)
핵심 질문 EKS CronJob은 LB가 없이 어떻게 노드에 분산되는가?스케줄러는 어떤 기준으로 점수를 계산해 Pod을 배치하는가?
Kubernetes 스케줄러의 2단계 배치 알고리즘
점수 산정에 사용되는 주요 요소들 기준 설명 preferred nodeAffinity 특정 라벨 가진 노드를 선호 → 점수 +10~+100 podAntiAffinity 동일한 app의 Pod이 있으면 더 읽기
Kubernetes CronJob에서 soft affinity와 podAntiAffinity의 실제 작동 방식과 노드 분산 전략 이해하기
실전 운영 중 발생 가능한 핵심 질문들
핵심 개념 요약 개념 요약 preferredDuringSchedulingIgnoredDuringExecution soft 조건이므로 만족하지 않으면 무시하고 실행 podAntiAffinity 기준 라벨 Pod 템플릿 내 template.metadata.labels 기준 Completed, Terminating 상태 anti-affinity 대상에 포함됨 (Pod 리소스 살아 있으면 영향 줌) TTLSecondsAfterFinished Pod을 자동 GC 처리해 anti-affinity 영향 최소화 동일 더 읽기
EKS CronJob에서 BackoffLimitExceeded 오류가 발생하는 원인과 해결 방법
EKS에서 CronJob 실행 시 다음과 같은 오류 메시지를 본 적 있으신가요? [BackoffLimitExceeded] Job has reached the specified backoff limit 이 오류는 Kubernetes Batch Job이 실패했고, 설정된 최대 재시도 횟수를 초과했을 때 발생합니다. 이 글에서는 해당 에러가 발생하는 이유와, 실전에서 이를 어떻게 해결할 수 있는지 자세히 살펴봅니다. 오류 원인: backoffLimit 더 읽기
Aurora MySQL에서 복잡한 JSON 서브쿼리로 인한 Signal 11 Crash 원인 분석 및 대응법
문제 요약 AWS RDS에서 운영 중인 Aurora MySQL 8.0.28 기반의 인스턴스에서 특정 복잡 쿼리 실행 중 signal 11 (Segmentation Fault) 이 발생하여 인스턴스가 재시작되었습니다.
문제 쿼리 구조 (샘플 변환) SELECT m.user_id, IFNULL(SUM(IF(( SELECT IFNULL((LENGTH(log.json_column) – LENGTH(REPLACE(log.json_column, ‘sampleKey’, ”)) / 15), 0) FROM user_log log WHERE log.user_id = m.user_id 더 읽기
Kubernetes에서 CronJob 병렬 실행 없이 노드 그룹(batch-alpha 등) 내 분산 처리하기: rotate-group 기반 전략
문제 개요 대규모 Kubernetes 클러스터에서 수백 개의 CronJob이 실행되며, 각 Job은 반드시 특정 태그(group=batch-alpha, group=batch-beta, group=batch-gamma)를 갖는 노드 풀에서만 실행되어야 합니다. 가장 중요한 요구사항은 동시에 병렬 실행이 절대로 발생해서는 안 된다는 점입니다.
일반적인 접근 방식의 한계
최종 채택한 전략 요약
실제 구성 요소 1. CronJob YAML 더 읽기
Aurora MySQL Signal 11 Crash 분석과 Spring Boot 커넥션 오류 대응 전략
개요 2025년 3월 26일, AWS Aurora MySQL 환경에서 Signal 11로 인해 데이터베이스가 비정상 종료되는 장애가 발생했습니다. 이와 동시에 Spring Boot 기반의 배치 애플리케이션에서는 커넥션 풀 오류로 애플리케이션 구동 실패가 발생했으며, 이 글에서는 그 원인과 해결 방안을 상세히 정리합니다.
장애 타임라인 요약 항목 시각 DB 다운 발생 2025-03-26 10:54:19 더 읽기
Spring Batch Kubernetes 종료 처리: graceful shutdown, shutdown hook, 컨테이너 runtime hang 완전 정복
Kubernetes 환경에서 sample-batch 시스템은 Java 기반의 Spring Batch Job을 실행하고 있으며, 안정적인 종료 처리가 매우 중요합니다. 특히 다음과 같은 요구사항을 만족해야 합니다: 이를 위해 다음 설정 및 코드 전략을 활용했습니다: 핵심 설정 yaml복사편집activeDeadlineSeconds: 180 terminationGracePeriodSeconds: 10
코드 전략 요약 1. Shutdown Hook에서 Whatap 처리 및 Thread 정리 Runtime.getRuntime().addShutdownHook(new 더 읽기