포트폴리오로 돌아가기

Tech Contents

DevOps 엔지니어로서 정리한 기술 문서들입니다.

29개의 콘텐츠
K8s 트러블슈팅을 관통하는 3가지 멘탈 모델
Kubernetes

K8s 트러블슈팅을 관통하는 3가지 멘탈 모델

Declarative Control, Pod Lifecycle, Networking — 대부분의 K8s 문제가 3가지 멘탈 모델로 수렴하는 이유.

Kubernetes
Teleport TLS Passthrough — Gateway API에서 자체 TLS 서비스 라우팅
Networking

Teleport TLS Passthrough — Gateway API에서 자체 TLS 서비스 라우팅

Teleport의 자체 TLS 인증서 요구사항을 Gateway API TLSRoute로 해결한 과정을 정리합니다.

TeleportGateway API +2
n8n v1 → v2 업그레이드: Kubernetes에서 메이저 버전 넘기
DevOps

n8n v1 → v2 업그레이드: Kubernetes에서 메이저 버전 넘기

n8n v1.120.4에서 v2.9.4로 2단계 순차 업그레이드한 기록. 연쇄 CVE 대응, Migration Report 활용, community node emptyDir 트레이드오프, Queue 모드 호환성 튜닝.

n8nKubernetes +2
로봇 프로젝트의 CI/CD 코드는 어떻게 작성되어 있을까 — Reachy Mini Physical CI 분석
DevOps

로봇 프로젝트의 CI/CD 코드는 어떻게 작성되어 있을까 — Reachy Mini Physical CI 분석

Pollen Robotics의 오픈소스 로봇 Reachy Mini 프로젝트에서 실제로 사용하는 Physical CI 파이프라인 코드를 분석합니다.

CI/CDGitHub Actions +1
Gateway API, Ingress를 대체하는 Kubernetes 표준
Kubernetes

Gateway API, Ingress를 대체하는 Kubernetes 표준

SIG-Network이 4년에 걸쳐 만든 Gateway API의 핵심 리소스 3가지와 그 관계를 이해하고, Ingress와 무엇이 달라졌는지 정리한다.

KubernetesGateway API
무료로 쓰던 OCI에서 매달 21달러가 빠져나가고 있었다
Kubernetes

무료로 쓰던 OCI에서 매달 21달러가 빠져나가고 있었다

OCI Always Free tier로 Kubernetes를 운영하다 예상치 못한 과금이 발생했다. Load Balancer Shape, Block Volume 용량, Performance Units — 세 가지 과금 원인을 찾고 월 SGD 21.52를 SGD 0.43까지 줄인 과정.

OCIKubernetes +2
Velero 백업, 같은 클러스터에 저장하면 DR이 아니다
Kubernetes

Velero 백업, 같은 클러스터에 저장하면 DR이 아니다

Velero 백업이 같은 클러스터의 MinIO에 저장되어 있었다. 클러스터가 죽으면 백업도 같이 사라진다. OCI에 Garage를 배포하고 CronJob으로 DR 복제를 구성한 뒤, DB Hook으로 백업 데이터의 일관성까지 확보한 과정.

KubernetesVelero +3
Velero FSB 백업이 4시간 걸린다고?
Kubernetes

Velero FSB 백업이 4시간 걸린다고?

defaultVolumesToFsBackup: true의 함정과 opt-in 방식으로 백업 시간 99% 단축하기

KubernetesVelero +2
Kubernetes 노드 메모리 리밸런싱 — OOMKilled 해결과 워크로드 분산
Kubernetes

Kubernetes 노드 메모리 리밸런싱 — OOMKilled 해결과 워크로드 분산

Control Plane 노드에 메모리 대식가 워크로드가 몰려 OOMKilled가 반복됐다. fork()와 Copy-on-Write 메커니즘을 이해하고 affinity/toleration으로 워크로드를 분산한 과정.

KubernetesMemory +3
Velero로 Kubernetes 백업 시스템 구축하기
Kubernetes

Velero로 Kubernetes 백업 시스템 구축하기

Homelab K8s 클러스터에 Velero + MinIO 백업 시스템을 구축하고, CSI 스냅샷 실패를 FSB로 해결한 뒤 복원까지 검증한 과정

KubernetesVelero +3
웹폰트 하나 바꿨을 뿐인데 LCP가 73% 개선됐다
Development

웹폰트 하나 바꿨을 뿐인데 LCP가 73% 개선됐다

Pretendard dynamic-subset의 함정과 시스템 폰트 전환으로 LCP 4.1초 → 1.1초 개선한 경험

FrontendPerformance +2
에어갭 환경에서 Helm Chart와 컨테이너 이미지 무결성 검증하기
DevOps

에어갭 환경에서 Helm Chart와 컨테이너 이미지 무결성 검증하기

공격자 관점으로 이해하는 GPG 서명, Cosign 검증, SHA256 해시 비교의 필요성과 실무 적용법

HelmKubernetes +2
Kubernetes StatefulSet 노드 이동 시 다운타임, 어떻게 줄일까?
Kubernetes

Kubernetes StatefulSet 노드 이동 시 다운타임, 어떻게 줄일까?

관리형 Kubernetes에서 Block Storage + StatefulSet 조합의 구조적 한계와 해결 방안

KubernetesStatefulSet +3
Claude Code 스킬 중앙 관리: 심볼릭 링크로 깔끔하게
Productivity

Claude Code 스킬 중앙 관리: 심볼릭 링크로 깔끔하게

늘어나는 Claude Code 스킬 저장소들을 한 곳에서 관리하고, 프로젝트별로 필요한 스킬만 연결하는 방법.

Claude CodeProductivity +1
Cilium BGP+ECMP 구성 (feat. Cilium 1.18.5 버그 발견)
Kubernetes

Cilium BGP+ECMP 구성 (feat. Cilium 1.18.5 버그 발견)

Cilium Gateway API 활성화 과정에서 겪은 TPROXY 문제, v1.18.5 버그 발견, hostNetwork 모드 전환, BGP + ECMP 구성까지의 여정입니다.

KubernetesCilium +2
ECMP로 이해하는 네트워크 로드밸런싱
Networking

ECMP로 이해하는 네트워크 로드밸런싱

동일 목적지로 가는 여러 경로를 동시에 활용하는 ECMP의 원리와 MikroTik 라우터에서의 설정 방법을 실습합니다.

MikroTikHomeServer
BGP 지원 라우터로의 여정 - KT 공유기에서 MikroTik으로
Networking

BGP 지원 라우터로의 여정 - KT 공유기에서 MikroTik으로

홈 쿠버네티스에서 BGP 피어링이 필요해서 MikroTik을 도입했습니다. KT 공유기에서 MikroTik으로 마이그레이션한 과정을 공유합니다.

MikroTikHomeServer +1
NGINX Ingress EOL 대응: OCI에서 Envoy Gateway로 마이그레이션
Kubernetes

NGINX Ingress EOL 대응: OCI에서 Envoy Gateway로 마이그레이션

NGINX Ingress Controller 지원 종료에 대비해 OCI Always Free 클러스터에서 Envoy Gateway로 마이그레이션한 경험을 공유합니다.

KubernetesGateway API +1
Server-Side Apply 동작을 파헤쳐보았다
Kubernetes

Server-Side Apply 동작을 파헤쳐보았다

Server-Side Apply의 필드 소유권, 충돌 감지, 프루닝을 Home Cluster에서 직접 검증했다. 4개 시나리오를 돌리면서 예상과 다르게 동작한 부분도 있었다.

KubernetesHelm
Gateway API 전환기 (1) - Cilium을 Kubespray에서 Helm으로
Kubernetes

Gateway API 전환기 (1) - Cilium을 Kubespray에서 Helm으로

Kubespray로 설치한 Cilium을 Helm 관리로 전환하는 과정에서 겪은 트러블슈팅과 교훈을 공유합니다.

KubernetesHelm +1
VibeCraft: 민관협력 공모전 특별상 수상기
Development

VibeCraft: 민관협력 공모전 특별상 수상기

Gemini CLI로 원샷 대시보드 생성 에이전트를 만들어 민관협력 공모전에서 특별상을 수상한 이야기

GeminiAI +2
HTTP/2와 gRPC 이해하기
Observability

HTTP/2와 gRPC 이해하기

HTTP/2 프레임 구조부터 gRPC 동작 방식, Protobuf 인코딩까지 직접 확인하며 이해합니다.

gRPCKubernetes
Claude Code 스킬로 블로그 트래픽 리포트 자동화하기
Productivity

Claude Code 스킬로 블로그 트래픽 리포트 자동화하기

GA 대시보드 들여다보는 대신 /ga-report 한 줄로 트래픽과 성능을 확인합니다. Google Analytics 연동부터 스킬 구현, 실제 성능 개선 사례까지 공유합니다.

Claude CodeGoogle Analytics +2
mTLS로 OTLP 엔드포인트 보호하기 (feat. Claude Code Hook)
Observability

mTLS로 OTLP 엔드포인트 보호하기 (feat. Claude Code Hook)

Kubernetes에서 OTLP 수집기를 외부에 노출할 때 mTLS로 접근을 제한하는 방법을 다룹니다. 인증서 생성부터 Nginx Ingress 설정, Claude Code Hook 연동까지 실제 구현 과정을 공유합니다.

mTLSOTLP +3
Claude Code 대화 기록 분석으로 스킬 자동화 기회 찾기
Productivity

Claude Code 대화 기록 분석으로 스킬 자동화 기회 찾기

로컬에 쌓이는 Claude Code 대화 기록을 컨텍스트로 활용해 반복 패턴을 찾고, 이를 Claude Skill로 자동화하는 방법.

Claude CodeAutomation +2
LinkedIn에서 발견한 Tencent WeKnora, GraphRAG PoC하고 PR까지 Merged
DevOps

LinkedIn에서 발견한 Tencent WeKnora, GraphRAG PoC하고 PR까지 Merged

LinkedIn에서 발견한 Tencent WeKnora를 홈 Kubernetes 클러스터에서 PoC하고, Helm Chart PR까지 Merge한 여정

KubernetesHelm +5
Claude Code로 포트폴리오 + 기술 블로그 운영하기
Productivity

Claude Code로 포트폴리오 + 기술 블로그 운영하기

AI 코딩 에이전트와 협업하여 포트폴리오 + 기술 블로그를 구축한 경험을 공유합니다. 효과적인 협업 방식, 자동화 시스템 구현, 운영 워크플로우까지 다룹니다.

Claude CodeAstro +2
EC2 해킹당하고, DevSecOps 파이프라인을 구축하다
DevOps

EC2 해킹당하고, DevSecOps 파이프라인을 구축하다

사이드 프로젝트 개발 서버가 털린 경험을 계기로 DevSecOps 파이프라인을 구축한 이야기입니다.

DevSecOpsTrivy +5
Claude Code로 일일 기록 자동화하기
Productivity

Claude Code로 일일 기록 자동화하기

ScreenPipe로 하루 활동을 수집하고, Claude Code Skill로 Notion에 자동 저장하는 시스템을 구축한 경험을 공유합니다. MCP에서 curl 기반으로 전환한 시행착오도 포함.

Claude CodeNotion +2