| En

홈랩 구축기 #5: 외부 접근 설정

개요 이전 글에서는 Traefik 인그레스 컨트롤러를 설치하고 내부와 외부 서비스를 분리하여 관리 인터페이스에 안전하게 접근할 수 있도록 구성했다. 이번 글에서는 홈랩 쿠버네티스 클러스터의 서비스를 외부 인터넷에서 접근할 수 있도록 DDNS와 포트포워딩을 구성하는 방법을 알아본다. 네트워크 아키텍처 요약 먼저 이전 글에서 구성한 네트워크 아키텍처를 간략히 요약한다: 내부용 로드밸런서(192.168.0.200): ArgoCD, Longhorn, Traefik 대시보드 같은 관리 인터페이스만 노출하며 내부 네트워크에서만 접근 가능하다. 외부용 로드밸런서(192.168.0.201): 블로그, 개인 프로젝트 등 공개 서비스만 노출하며 라우터 포트포워딩을 통해 외부 인터넷에서 접근 가능하다. ...

2025년 2월 26일 · 8 분 · 1586 단어 · In-Jun

홈랩 구축기 #4: 내부 서비스 구성

개요 이전 글에서는 Longhorn 분산 스토리지 시스템을 설치하여 파드가 재시작되거나 다른 노드로 이동해도 데이터가 유지되는 영구 스토리지 환경을 구축했다. 이번 글에서는 홈랩 쿠버네티스 클러스터에 Traefik 인그레스 컨트롤러를 설치하고, 내부 네트워크에서 관리 인터페이스에 안전하게 접근할 수 있도록 구성하는 방법을 알아본다. 인그레스 컨트롤러 선택 홈랩 환경에서 쿠버네티스 서비스를 외부에 노출하는 방법은 여러 가지가 있다: NodePort: 각 노드의 특정 포트(30000-32767 범위)를 통해 서비스에 접근하는 방식으로 설정이 간단하지만 포트 번호를 기억해야 하는 불편함이 있고, 표준 HTTP/HTTPS 포트를 사용할 수 없다. ...

2025년 2월 25일 · 7 분 · 1354 단어 · In-Jun

홈랩 구축기 #3: Longhorn 스토리지

개요 이전 글에서는 ArgoCD를 설치해 GitOps 환경을 구축했다. 이번 글에서는 홈랩 쿠버네티스 클러스터에 Longhorn 분산 스토리지를 설치하고 구성한 과정을 정리한다. 영구 스토리지가 필요한 이유와 여러 스토리지 솔루션을 검토하며 얻은 판단 기준도 함께 공유한다. 홈랩 환경의 스토리지 고민 홈랩 쿠버네티스를 구축하면서 가장 크게 고민한 부분 중 하나는 스토리지였다. 데이터베이스, 모니터링 도구, 백업 시스템처럼 실제로 운영할 만한 애플리케이션 대부분은 파드가 재시작되거나 다른 노드로 이동해도 데이터가 유지되는 영구 스토리지를 필요로 한다. ...

2025년 2월 25일 · 7 분 · 1342 단어 · In-Jun

홈랩 구축기 #2: ArgoCD GitOps

개요 이전 글에서는 Dell OptiPlex Micro를 활용하여 홈랩 쿠버네티스 클러스터를 구성하고 기본 설정을 완료했다. 이번 글에서는 클러스터의 모든 구성요소를 Git 저장소에서 선언적으로 관리하기 위해 GitOps 도구인 ArgoCD를 설치하고 App of Apps 패턴을 적용하여 확장 가능한 인프라 관리 체계를 구축하는 방법을 다룬다. GitOps의 이해 GitOps란? GitOps는 2017년 Weaveworks의 Alexis Richardson이 처음 제안한 운영 모델로, Git 저장소를 인프라와 애플리케이션 구성의 단일 진실 공급원(Single Source of Truth)으로 활용하는 방식이며, 모든 인프라 변경 사항을 Git 커밋으로 추적하고 Pull Request를 통해 검토한 후 자동화된 프로세스를 통해 실제 환경에 반영함으로써 인프라를 코드처럼 관리할 수 있게 한다. ...

2025년 2월 25일 · 8 분 · 1691 단어 · In-Jun

홈랩 구축기 #1: 미니PC Kubernetes 클러스터 구축

개요 이 시리즈는 홈랩을 만들고 운영하면서 정리해두고 싶은 것들을 기록하는 글이다. 설치 과정만 따라가는 문서보다는, 어떤 환경을 꾸렸고 왜 그렇게 구성했는지를 중심으로 적어가려 한다. 이번 글은 그 시작점으로, 미니PC로 쿠버네티스 클러스터를 구성할 때 사용한 하드웨어와 기본 설치 과정을 정리한다. 하드웨어는 Dell OptiPlex Micro 다섯 대를 클러스터 노드로 사용하고, TP-Link 라우터와 스위치로 네트워크를 구성했다. Dell OptiPlex Micro는 전력 소모가 적은 미니 PC라 중고 시장에서 비교적 저렴하게 구할 수 있다. 사용한 모델은 9세대 i5 CPU, 16GB 메모리, 256GB SSD를 갖추고 있어 쿠버네티스 워크로드를 처리하기에 충분한 사양이다. ...

2025년 2월 24일 · 7 분 · 1349 단어 · In-Jun

IPv6 Neighbor Discovery Protocol (NDP)

NDP란 무엇인가 NDP(Neighbor Discovery Protocol)는 2007년 IETF RFC 4861로 표준화된 IPv6 네트워크의 핵심 프로토콜이다. IPv4에서 각각 ARP(Address Resolution Protocol), ICMP Router Discovery, ICMP Redirect 등이 맡던 기능을 ICMPv6(Internet Control Message Protocol version 6) 위에서 통합해, 이웃 노드 탐색, 라우터 발견, 주소 자동 구성, 주소 중복 검사, 경로 최적화 같은 작업을 처리한다. IPv4 환경에서는 ARP, DHCP, ICMP 등 여러 프로토콜이 독립적으로 동작해 네트워크 관리가 복잡했다. 반면 IPv6에서는 NDP가 이 기능들을 통합해 프로토콜 스택을 단순화하고 보안 기능을 확장했다. 특히 멀티캐스트(multicast) 기반 통신을 사용해 IPv4의 브로드캐스트(broadcast) 방식보다 불필요한 트래픽을 줄일 수 있으며, 이는 대규모 네트워크 환경에서 효율과 전력 사용 측면에서도 이점이 있다. ...

2025년 2월 24일 · 14 분 · 2900 단어 · In-Jun

우분투 24.04 LTS에서 Wine 설치하기

Wine의 개념과 작동 원리 Wine(Wine Is Not an Emulator)은 Ubuntu 24.04 LTS를 비롯한 Linux, macOS, BSD 같은 UNIX 호환 운영체제에서 Windows 프로그램을 실행할 수 있게 해주는 호환성 레이어(Compatibility Layer)다. 1993년 Bob Amstadt와 Eric Youngdale가 시작한 오픈 소스 프로젝트로, 30년 넘게 개발이 이어지고 있다. 이름 그대로 Wine은 단순한 에뮬레이터가 아니라 Windows API를 다른 운영체제 환경에 맞게 연결해 주는 계층이라는 점을 강조한다. Wine은 가상 머신이나 에뮬레이터와는 다른 방식으로 동작한다. VirtualBox나 VMware 같은 가상화 소프트웨어는 완전한 Windows 운영체제를 가상 환경에서 실행하므로 시스템 리소스를 많이 사용하지만, Wine은 Windows 프로그램이 호출하는 API(Application Programming Interface) 함수를 Linux 시스템이 이해할 수 있는 형태로 실시간 변환해 네이티브에 가까운 성능을 제공한다. 예를 들어 Windows 프로그램이 파일을 열기 위해 CreateFile 함수를 호출하면 Wine은 이를 리눅스의 open 시스템 콜로 바꿔 처리한다. ...

2025년 2월 23일 · 7 분 · 1482 단어 · In-Jun

ARP 프로토콜 동작 원리

ARP란 무엇인가 ARP(Address Resolution Protocol)는 TCP/IP 네트워크에서 IP 주소에 대응하는 MAC 주소(물리적 주소)를 동적으로 찾아내는 주소 변환 프로토콜이다. 1982년 IETF의 RFC 826 문서를 통해 공식적으로 표준화되었으며, OSI 7계층 모델로 보면 2계층(데이터 링크 계층)과 3계층(네트워크 계층) 사이의 경계에서 동작한다. 즉, 논리적 주소(IP)와 물리적 주소(MAC)를 연결하는 역할을 한다. 네트워크 통신에서 실제 데이터 전송은 MAC 주소를 기반으로 이루어진다. 하지만 상위 계층(네트워크 계층)에서는 보통 IP 주소만 알고 있으므로, 하위 계층(데이터 링크 계층)에서 패킷을 전송하려면 목적지의 MAC 주소를 먼저 알아야 한다. 이때 ARP가 IP 주소를 MAC 주소로 변환하는 과정을 담당한다. ARP는 브로드캐스트(broadcast) 방식으로 네트워크 내 모든 장치에게 질의를 보내고, 해당 IP를 가진 장치만 응답하는 구조로 동작한다. 이더넷(Ethernet)을 비롯한 대부분의 로컬 네트워크 환경에서 필수적으로 사용되는 이유가 여기에 있다. ...

2025년 2월 20일 · 10 분 · 2034 단어 · In-Jun

DNS 작동 원리와 구조

개요 인터넷에서 웹사이트에 접속할 때 우리는 IP 주소 대신 도메인 이름을 사용한다. 이 도메인 이름을 실제 서버의 IP 주소로 변환하는 시스템이 바로 DNS(Domain Name System)다. DNS는 흔히 인터넷의 전화번호부에 비유되며, 1983년 Paul Mockapetris가 설계한 이후 인터넷의 핵심 인프라로 자리잡았다. 오늘날 DNS는 매일 수십억 건의 쿼리를 처리하며, 사용자가 192.168.0.1이나 2001:4860:4860::8888 같은 복잡한 IP 주소를 외우지 않고도 www.example.com처럼 직관적인 도메인 이름으로 웹 서비스에 접근할 수 있게 한다. DNS(Domain Name System)란? DNS는 사람이 읽기 쉬운 도메인 이름(예: www.example.com)을 컴퓨터가 이해할 수 있는 IP 주소(예: 93.184.216.34)로 변환하는 분산형 데이터베이스 시스템이다. 전 세계에 분산된 계층형 네임서버들이 협력해 이름 해석 서비스를 제공하며, 관련 표준은 IETF의 RFC 1034와 RFC 1035에 정의되어 있다. ...

2025년 2월 20일 · 13 분 · 2645 단어 · In-Jun

OSI 7계층 네트워크 모델

개요 네트워크 통신은 여러 단계가 맞물려 동작하므로, 전체 과정을 체계적으로 이해하려면 표준화된 참조 모델이 필요하다. OSI(Open Systems Interconnection) 7계층 모델은 국제표준화기구(ISO)가 1984년에 발표한 네트워크 통신 표준으로, 서로 다른 시스템 간 통신 과정을 7개의 계층으로 나누어 설명한다. 각 계층은 독립적으로 동작하면서도 상호 협력해 데이터를 전송하며, 이 모델은 네트워크 엔지니어와 소프트웨어 개발자가 복잡한 통신 과정을 이해하고 문제를 진단할 때 핵심적인 개념적 프레임워크로 활용된다. OSI 7계층 모델이란? OSI 7계층 모델은 네트워크 통신 과정을 물리 계층부터 응용 계층까지 7개의 추상화된 계층으로 나눈 참조 모델이다. 1970년대 후반, 제조사마다 서로 다른 프로토콜을 사용해 상호 운용성이 부족했던 문제를 해결하기 위해 ISO가 개발했으며, 현재는 실제 구현 표준이라기보다 네트워크 개념을 이해하고 문제를 진단하는 데 쓰이는 참조 모델로 활용된다. ...

2025년 2월 20일 · 12 분 · 2409 단어 · In-Jun
[email protected]