푸른영혼의 별 | Tech Blog
Java Backend Engineer의 기술 블로그입니다.
Spring Boot, MSA, JPA, Kafka, Kubernetes 등 실무 경험을 공유합니다.
주요 프로젝트: Settlement MSA · ASAT · GitHub
Posts (총 235편 · 19 / 24 페이지)
-
K3s local-path-provisioner 에 4TB HDD 통합 — configmap 자동 복원 우회하기
K3s 의 default storage class
local-path는/var/lib/rancher/k3s/storage에 PVC 를 만듭니다. 일원 노드에 4TB HDD 를 새로 장착한 김에 모든 ilwon PVC 를 HDD 에 자동 할당하도록 통합한 기록입니다. 처음 ConfigMap 수정 방식이 K3s addon 매니지드 라서 자동 복원되는 함정도 같이. -
Spring Boot 4 의존성 지옥 디버깅 후기 — Spring AI / SpringDoc / classpath leakage
K3s 이관 작업 중 Spring Boot 4.0.4 로 마이그레이션된 3 개 프로젝트 (sparta-msa, sns-portfolio, shopping-lowprice) 가 전부 다른 방식으로 실패하는 걸 디버깅한 기록입니다. 사진: 깨끗하게 잘 도는 SB 3 으로 다운그레이드가 정답이었다.
-
AWS Lightsail → 5-노드 온프레미스 K3s 이관 — 월 $30 비용 0 으로
서울 리전 Lightsail 2 인스턴스 (르무엘클라우드 + 포트폴리오클라우드) 에서 굴러가던 7 개 컨테이너 워크로드를 온프레미스 K3s 클러스터로 이관하고 인스턴스를 종료했습니다. 월 $24-30 비용 절감 + 모든 워크로드가 GitOps 로 통일된 후기.
-
K3s 3-Master HA — SQLite → embedded etcd 18분 in-place 마이그레이션 후기
22일 운영 중인 single-master K3s 클러스터를 18분 다운타임 으로 3-master HA 로 전환했습니다. 백엔드는 SQLite → embedded etcd. 공식 문서에는 “지원 안 함” 으로 적혀있는 in-place 마이그레이션을 시도해서 성공시킨 기록입니다. 4 개의 실전 트러블도 같이 정리합니다.
-
쿠버네티스 4일차 — 무중단 배포 (RollingUpdate / Canary / Blue-Green)
3일차까지 우리는 앱을 띄우고, 노출하고, 데이터까지 붙였습니다. 이제 진짜 운영 기술 — 새 버전을 어떻게 끊김 없이 갈아끼우나 — 를 봅니다.
-
docker compose → K3s 마이그, 9개 서비스 실전 후기 — 고심한 것, 차이, 장단점
홈랩 K3s 5 노드 클러스터에 docker compose 로 굴러가던 서비스 9 개를 하루 안에 옮겼습니다 (cost / dart / pilgrim / data / report / fashion / goods / grid / academy). 그 과정에서 진짜로 고민한 것들, docker compose 와 K3s 가 운영상 어떻게 다른지, 각각의 장단점을 정리합니다. “K8s 가 다 좋다” 가 아니라 “언제 어떤 게 더 나은지” 의 관점입니다.
-
K3s NodeLocal DNS — Pod 가 Service 이름을 못 풀 때, 진짜 원인은 forward loop
오늘 K3s 5 노드 클러스터에서 Pod 가 Service 이름을 DNS resolve 못 하는 문제를 추적했습니다. 8 케이스 마이그를 IP 직접 사용으로 우회하고 있었는데, ArgoCD 자동 sync 가 같은 이유로 실패하는 걸 보고 근본 해결에 들어갔습니다. 진짜 원인은 NodeLocal DNS 의 forward loop 였습니다.
-
DDR3 사기 직전에 멈춘 이야기 — DDR4 RAM 호환성 5분 점검법
K3s 워커 노드 하나(일원, i7-8700) 의 RAM 을 14GB → 32GB 로 늘리려고 쿠팡에서 “DDR3 8GB 28,900원” 을 보고 거의 클릭할 뻔했습니다. 그런데 i7-8700 은 DDR4 만 쓴다. DDR3 사면 슬롯에 안 들어가서 그냥 버리는 28,900원 입니다.
-
ChatOps — 텔레그램 봇 16개 명령어로 K3s 관리하기
K3s 클러스터를 5 노드 굴리다 보니 매번 SSH 들어가서
kubectl get pods --all-namespaces치는 게 귀찮아졌습니다. 그래서 텔레그램 봇 하나로 K3s 핵심 명령들을 다 호출할 수 있게 만들었습니다. 시작은 7 개 명령이었는데 지금은 16 개. -
CVE 패치 일괄 작업 — Netty 4.1.119 → 4.1.133 을 BOM 한 줄로 잡은 이야기
Trivy CI 가 매일 SARIF 를 뱉으면서 4 개 백엔드 서비스에 Netty CVE 12 개 가 빨간 줄로 뜨고 있었습니다. 단순한 패치 같았는데 첫 시도(PR #1) 가 실패했고, 두 번째(PR #2) 에서 BOM 패턴으로 잡았습니다. 그 과정 정리.