☸️ 쿠버네티스, 버튼 없이 직접 올려봤다 – kubeadm 클러스터 구축기

클라우드에서 쿠버네티스 쓰는 건 쉽죠. GKE, EKS, AKS… 버튼 몇 번이면 뚝딱입니다. 그런데 정작 “쿠버네티스가 어떻게 굴러가는가”를 이해하려면, 한 번쯤은 맨땅에서 직접 올려봐야 합니다. 이번 실습은 VirtualBox 위에 VM 3대를 띄우고 kubeadm으로 클러스터를 직접 구성해본 기록입니다. 🎯 목표: 1 Master + 2 Worker 구성 클라우드 없이, 내 노트북 위에서 진짜 쿠버네티스를 돌리겠다는 게 목표였습니다. 역할 … 더 읽기

[프로젝트 회고]🪞 라즈베리파이 3대로 엔터프라이즈 HA를 구현하고 나서

2주가 걸렸습니다. SSD가 시스템을 얼리는 것부터 시작해서 DHCP가 클러스터를 죽이고, CPU가 1291%까지 치솟고, Python 프로세스가 커널에 갇혀버리는 일들을 겪으며 결국 Slack에 Failover 알람이 세 단계로 날아오는 것을 확인했습니다. 이 포스팅은 그 2주를 돌아보는 회고입니다. 🔗 프로젝트 전체: GitHub Repository | GitHub Wiki | 칸반보드 | Docker Hub 1️⃣ 왜 이 프로젝트를 시작했는가 대전 국가정보자원관리원 화재 … 더 읽기

[프로젝트 6]🔴 랜선을 뽑았다. 시스템은 스스로 살아남았다 – Failover 실증기

가장 긴장했던 순간이었습니다. Worker 2의 랜선을 직접 손으로 뽑는 그 순간. 아무 명령도 입력하지 않은 채로 화면을 바라보며 기다렸습니다. 30초가 지나고, 1분이 지나고. 그리고 Slack에 알람이 왔습니다. 파드가 Worker 1으로 이동하고, 감시가 재개됐습니다. 이 포스팅은 그 장면을 만들기 위한 설계와 자동화의 기록입니다. 🔗 Failover 실증: GitHub Wiki — Proof Failover | 알람 파이프라인 | Ansible … 더 읽기

[프로젝트 5]💾 K3s CronJob이 CPU를 1291%까지 폭주시킨 날 – Store-and-Forward 티어링 구현기

라즈베리파이 SSD는 무한하지 않습니다. AI 파드들이 매초 데이터를 InfluxDB에 쌓으면 언젠가는 스토리지가 꽉 찹니다. 그래서 오래된 데이터를 주기적으로 Windows PC의 NFS Cold Storage로 옮기는 티어링 파이프라인을 구현하기로 했습니다. 간단할 것 같았는데, K3s CronJob이 클러스터를 마비시키고, NFS가 유령 연결을 만들고, Python 프로세스가 커널에 갇혀버리는 일들이 기다리고 있었습니다. 🔗 데이터 티어링 실증: GitHub Wiki — Proof Tiering … 더 읽기

[프로젝트 4]🤖 카메라 인식이 v7까지 걸린 이유 – 라즈베리파이 5 Edge AI 완성기

“컨테이너에 카메라 마운트하고 YOLOv8 돌리면 되겠지” 라고 생각했습니다. v1을 올리고 로그를 봤더니 exec format error. v2 올리니 Failed to read frame from camera. v3, v4, v5, v6 빌드 실패… 결국 v7에서야 화재 감지가 정상 동작했습니다. 이 포스팅은 그 7번의 시도 뒤에 발견한 라즈베리파이 5의 카메라 아키텍처에 관한 이야기입니다. 🔗 Edge AI 위키 상세 문서: GitHub … 더 읽기

[프로젝트 3]🌐 사내망 DHCP가 클러스터를 죽였다 – K3s 전면 재구축과 GitOps 완성기

2편에서 K3s 클러스터를 겨우 올렸다고 했죠. 이번 편은 그걸 전부 다 날리고 처음부터 다시 만든 이야기입니다. MetalLB 설치 하나가 클러스터 전체를 무너뜨렸고, 원인을 파고들다가 사내망 DHCP와 노드 IP가 충돌하고 있었다는 걸 발견했습니다. 그 삽질을 통해 결국 훨씬 견고한 아키텍처가 완성됐고, 그 위에 GitOps 파이프라인까지 올라갔습니다. 🔗 DevOps 위키 상세 문서: GitHub Wiki — DevOps | … 더 읽기

[프로젝트 2]🔧 라즈베리파이 5에서 K3s 클러스터 올리기 – 하드웨어부터 Longhorn HA까지

클러스터 구축이 이렇게 험난할 줄은 몰랐습니다. 공식 문서대로 명령어를 따라 치면 금방 될 것 같았는데, 현실은 달랐어요. SSD가 시스템을 통째로 얼려버리고, 네트워크가 5분마다 끊기고, Worker 노드가 엉뚱한 IP로 붙고, Longhorn 매니저가 아예 뜨지를 않고. 이 포스팅은 그 삽질의 기록입니다. 🔗 K3s 위키 상세 문서: GitHub Wiki — Kubernetes(K3s) | Longhorn HA 🖥️ 하드웨어 구성 본격적인 … 더 읽기

[프로젝트 개요]🛡️ 공장이 불타도 데이터는 살아남는다 – Safe-Edge Blackbox 설계기

뉴스에서 대형 화재 사고 소식을 볼 때마다 드는 생각이 있었어요. “저 현장의 CCTV 영상은 어떻게 됐을까?” 사고 원인을 밝혀야 할 가장 중요한 증거가, 사고와 함께 타버리는 아이러니. 그게 이 프로젝트의 출발점이었습니다. 🔗 프로젝트 전체 문서: GitHub Wiki | GitHub Repository | 칸반보드 💥 왜 이 프로젝트를 만들었는가 2024년 대전 국가정보자원관리원 화재 사고를 보면서 문제를 명확하게 … 더 읽기

📦 코드를 올리면 자동으로 빌드된다: Docker + GitLab CI/CD 환경 구축기

“코드를 push하면 알아서 테스트하고 배포까지 해줬으면 좋겠다.” 이 바람을 현실로 만들어주는 것이 CI/CD 파이프라인입니다. 이번 과제에서는 Docker로 GitLab 서버를 직접 띄우고, GitLab Runner를 연결해 코드를 push하는 순간 자동으로 파이프라인이 실행되는 환경을 처음부터 구축해봤습니다. 📋 전체 구성 개요 구성 요소 역할 Docker + Docker Compose 컨테이너 기반 실행 환경 GitLab 코드 저장소 + CI/CD 오케스트레이터 GitLab … 더 읽기

🚧 트래픽을 통제하고 주소를 바꾸다: ACL 보안 정책과 NAT/PAT (Part 6-7)

통신이 잘 되는 것만큼 중요한 게 “해서는 안 되는 통신을 막는 것”입니다. 재무팀 서버에 개발팀이 아무 제한 없이 접근할 수 있다면 보안은 없는 것과 마찬가지입니다. Part 6에서는 ACL로 트래픽을 정밀하게 제어하고, Part 7에서는 NAT/PAT로 내부 IP를 외부에서 보이지 않게 감추면서 공인 IP를 절약합니다. Part 6: ACL — 네트워크의 경비원 ACL이란? ACL(Access Control List)은 라우터의 인터페이스에서 … 더 읽기