<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Docs on homelab89</title>
    <link>https://blog.homelab89.com/docs/</link>
    <description>Recent content in Docs on homelab89</description>
    <generator>Hugo</generator>
    <language>ko-KR</language>
    <lastBuildDate>Sat, 04 Jul 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.homelab89.com/docs/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Blog 사용법</title>
      <link>https://blog.homelab89.com/docs/homelab/blog-usage/</link>
      <pubDate>Sat, 04 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/homelab/blog-usage/</guid>
      <description>&lt;p&gt;이 blog(&lt;code&gt;~/blog&lt;/code&gt;)에 글을 쓰는 방법 요약. 전체 설계는 &lt;code&gt;~/Documents/docs/knowledge-base-architecture.md&lt;/code&gt; 참조.&lt;/p&gt;
&lt;h2 id=&#34;번들-구조-문서-1건--폴더-1개&#34;&gt;번들 구조: 문서 1건 = 폴더 1개&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;번들 슬러그&amp;gt;/
├── index.md      &amp;lt;- 본문 (markdown 원본 그대로)
└── files/        &amp;lt;- 이 글에서 나온 코드·그림·스크립트
    └── verify.sh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;본문에서는 &lt;code&gt;files/&amp;lt;파일명&amp;gt;&lt;/code&gt; 형태의 상대 링크로 부속 산출물을 참조한다. 예: &lt;code&gt;[검증 스크립트](files/sample.sh)&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ArgoCD Application 네임스페이스 Watch 범위</title>
      <link>https://blog.homelab89.com/docs/k8s/argocd-application-namespace-scope/</link>
      <pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/k8s/argocd-application-namespace-scope/</guid>
      <description>&lt;blockquote&gt;&lt;p&gt;작성일: 2026-07-02 | 컴포넌트: argocd-server, argocd-application-controller, argocd-applicationset-controller&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id=&#34;1-핵심-사실&#34;&gt;1. 핵심 사실&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;기본 설치 상태에서 ArgoCD는 자신이 설치된 네임스페이스(보통 &lt;code&gt;argocd&lt;/code&gt;)에 있는 &lt;code&gt;Application&lt;/code&gt; 커스텀 리소스만 list/watch함.&lt;/li&gt;
&lt;li&gt;여러 네임스페이스(또는 전체)의 Application을 다루려면 &lt;code&gt;argocd-cmd-params-cm&lt;/code&gt; ConfigMap의 &lt;code&gt;application.namespaces&lt;/code&gt; 키를 명시적으로 설정해야 함. &amp;ldquo;Applications in any namespace&amp;rdquo; 기능 (v2.5+에서 지원).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AppProject&lt;/code&gt;는 이 설정과 무관하게 &lt;strong&gt;항상&lt;/strong&gt; ArgoCD 설치 네임스페이스에만 존재 가능. AppProject에는 네임스페이스 확장 기능 자체가 없음.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2-설정-확인-방법&#34;&gt;2. 설정 확인 방법&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl -n argocd get configmap argocd-cmd-params-cm -o &lt;span class=&#34;nv&#34;&gt;jsonpath&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;{.data.application\.namespaces}&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;&lt;code&gt;data.application.namespaces&lt;/code&gt; 상태&lt;/th&gt;
					&lt;th&gt;의미&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;키 없음&lt;/td&gt;
					&lt;td&gt;기본값 — 설치 네임스페이스만 watch&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;&amp;quot;argocd&amp;quot;&lt;/code&gt; (설치 네임스페이스와 동일 값)&lt;/td&gt;
					&lt;td&gt;명시적 지정, 결과는 기본값과 동일&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;&amp;quot;*&amp;quot;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;전체 네임스페이스 watch&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;&amp;quot;ns1,ns2&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;team-*&amp;quot;&lt;/code&gt; (와일드카드 지원)&lt;/td&gt;
					&lt;td&gt;지정된 네임스페이스(들)만 watch&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;&lt;p&gt;주의: ConfigMap 자체의 &lt;code&gt;metadata.namespace: argocd&lt;/code&gt;는 이 ConfigMap 리소스가 어디 위치하는지를 나타낼 뿐 watch 범위와 무관함. 반드시 &lt;code&gt;data&lt;/code&gt; 블록 안의 &lt;code&gt;application.namespaces&lt;/code&gt; 키를 확인해야 함 — 헷갈리기 쉬운 포인트.&lt;/p&gt;</description>
    </item>
    <item>
      <title>01. 사전 준비</title>
      <link>https://blog.homelab89.com/docs/k8s/etcd-lab-prerequisites/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/k8s/etcd-lab-prerequisites/</guid>
      <description>&lt;h2 id=&#34;호스트-패키지-확인-및-설치&#34;&gt;호스트 패키지 확인 및 설치&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 필수 패키지 확인&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dpkg -l &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -E &lt;span class=&#34;s2&#34;&gt;&amp;#34;virt-install|qemu-kvm|libvirt-daemon|genisoimage|cloud-image-utils|sshpass&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 설치 (없는 것만)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get install -y &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  qemu-kvm &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  libvirt-daemon-system &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  libvirt-clients &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  virt-install &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  genisoimage &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  cloud-image-utils &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  sshpass &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  python3-pip &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  python3-venv
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# libvirt 그룹 확인 (현재 사용자가 포함되어 있어야 함)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;groups &lt;span class=&#34;nv&#34;&gt;$USER&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep libvirt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 없으면: sudo usermod -aG libvirt $USER &amp;amp;&amp;amp; newgrp libvirt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;ssh-키-준비&#34;&gt;SSH 키 준비&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 랩 전용 SSH 키 생성 (기존 키와 분리 권장)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh-keygen -t ed25519 -f ~/.ssh/k8s-lab -N &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt; -C &lt;span class=&#34;s2&#34;&gt;&amp;#34;k8s-lab&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 생성 확인&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ls -la ~/.ssh/k8s-lab*
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ~/.ssh/k8s-lab      ← private key&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ~/.ssh/k8s-lab.pub  ← public key (cloud-init에 삽입됨)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;ubuntu-2204-cloud-image-다운로드&#34;&gt;Ubuntu 22.04 Cloud Image 다운로드&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 저장 위치: OS SSD에 여유 충분 (367GB available)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CLOUD_IMAGE_DIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/var/lib/libvirt/images&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;IMAGE_NAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;ubuntu-22.04-server-cloudimg-amd64.img&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;IMAGE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://cloud-images.ubuntu.com/jammy/current/&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;IMAGE_NAME&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo wget -O &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;CLOUD_IMAGE_DIR&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;IMAGE_NAME&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;IMAGE_URL&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 무결성 확인&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo qemu-img info &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;CLOUD_IMAGE_DIR&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;IMAGE_NAME&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;python-가상환경--kubespray-의존성-준비&#34;&gt;Python 가상환경 + kubespray 의존성 준비&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; /home/jinsoo/Documents/k8s-etcd-lab
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# kubespray clone (03-setup-kubespray.sh에서 자동 처리)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/kubernetes-sigs/kubespray.git /tmp/kubespray-src
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Python venv 생성&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 -m venv .venv
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt; .venv/bin/activate
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# kubespray 의존성 설치&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -r /tmp/kubespray-src/requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ansible 버전 확인&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ansible --version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;리소스-요건-확인&#34;&gt;리소스 요건 확인&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;항목&lt;/th&gt;
					&lt;th&gt;필요&lt;/th&gt;
					&lt;th&gt;현재 호스트&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;vCPU&lt;/td&gt;
					&lt;td&gt;12개 (4×3)&lt;/td&gt;
					&lt;td&gt;24스레드 ✅&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;RAM&lt;/td&gt;
					&lt;td&gt;24GB (8×3)&lt;/td&gt;
					&lt;td&gt;40GB ✅&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;디스크&lt;/td&gt;
					&lt;td&gt;120GB (40×3)&lt;/td&gt;
					&lt;td&gt;SSD 367GB 여유 ✅&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;네트워크&lt;/td&gt;
					&lt;td&gt;NAT 브릿지 1개&lt;/td&gt;
					&lt;td&gt;libvirt 사용 ✅&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;사전-확인-체크리스트&#34;&gt;사전 확인 체크리스트&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# KVM 사용 가능 여부&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kvm-ok &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; sudo apt-get install cpu-checker
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# libvirtd 실행 상태&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl status libvirtd
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 기존 네트워크 확인 (libvirt default network)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;virsh net-list --all
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 기존 VM 목록 확인&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;virsh list --all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>03. kubespray 배포 가이드</title>
      <link>https://blog.homelab89.com/docs/k8s/etcd-kubespray-deploy/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/k8s/etcd-kubespray-deploy/</guid>
      <description>&lt;h2 id=&#34;kubespray-개요&#34;&gt;kubespray 개요&lt;/h2&gt;
&lt;p&gt;kubespray는 Ansible 기반의 프로덕션급 Kubernetes 클러스터 배포 도구입니다.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kubespray (Ansible Playbook)
    └── cluster.yml
        ├── 부트스트랩 (python, pip 설치)
        ├── etcd 클러스터 구성 (3-node)
        ├── kube-apiserver, kube-scheduler, kube-controller-manager
        ├── kubelet, kube-proxy
        └── CNI (Calico)
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;kubespray-clone-및-환경-구성&#34;&gt;kubespray Clone 및 환경 구성&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; /home/jinsoo/Documents/k8s-etcd-lab
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# kubespray clone&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/kubernetes-sigs/kubespray.git /tmp/kubespray-src
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 인벤토리 복사&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp -rfp /tmp/kubespray-src/inventory/sample kubespray/inventory/k8s-etcd-lab
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Python 가상환경 활성화 후 의존성 설치&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt; .venv/bin/activate
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -r /tmp/kubespray-src/requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ansible 연결 테스트&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ansible all -i kubespray/inventory/k8s-etcd-lab/hosts.yaml &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    -m ping &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    --private-key ~/.ssh/k8s-lab &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    -u ubuntu
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;인벤토리-구조&#34;&gt;인벤토리 구조&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;kubespray/inventory/k8s-etcd-lab/hosts.yaml&lt;/code&gt; 파일을 사용합니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>04. etcd 장애 실험 시나리오</title>
      <link>https://blog.homelab89.com/docs/k8s/etcd-failure-experiments/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/k8s/etcd-failure-experiments/</guid>
      <description>&lt;h2 id=&#34;etcd-raft-쿼럼-기본-원리&#34;&gt;etcd Raft 쿼럼 기본 원리&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;3-node etcd 클러스터:
  - 쿼럼(과반수) = 2
  - 1개 장애: 쿼럼 유지 (2/3 살아있음) → 클러스터 정상 운영
  - 2개 장애: 쿼럼 붕괴 (1/3만 살아있음) → 클러스터 읽기 전용 / 쓰기 불가
  - 3개 장애: 완전 다운

  장애 허용 공식: floor((n-1)/2)
  3노드: floor((3-1)/2) = 1개까지 허용
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;실험-전-준비&#34;&gt;실험 전 준비&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;KUBECONFIG&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;~/.kube/k8s-etcd-lab.conf
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 실험 전 etcd 상태 베이스라인 기록&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl get nodes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl get pods -n kube-system
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# etcd 헬스체크 (ctrl1에서)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh k8s-ctrl1 &lt;span class=&#34;s2&#34;&gt;&amp;#34;sudo ETCDCTL_API=3 etcdctl \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;  --endpoints=https://203.0.113.11:2379,https://203.0.113.12:2379,https://203.0.113.13:2379 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;  --cacert=/etc/ssl/etcd/ssl/ca.pem \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;  --cert=/etc/ssl/etcd/ssl/member-k8s-ctrl1.pem \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;  --key=/etc/ssl/etcd/ssl/member-k8s-ctrl1-key.pem \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;  endpoint health -w table&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;시나리오-1-단일-노드-장애-쿼럼-유지&#34;&gt;시나리오 1: 단일 노드 장애 (쿼럼 유지)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;목표&lt;/strong&gt;: etcd 노드 1개 정지 후 클러스터 운영 영향 확인&lt;/p&gt;</description>
    </item>
    <item>
      <title>05. etcd 복구 절차</title>
      <link>https://blog.homelab89.com/docs/k8s/etcd-recovery-runbook/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/k8s/etcd-recovery-runbook/</guid>
      <description>&lt;h2 id=&#34;복구-시나리오-분류&#34;&gt;복구 시나리오 분류&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;상황&lt;/th&gt;
					&lt;th&gt;방법&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;단일 노드 장애 (데이터 intact)&lt;/td&gt;
					&lt;td&gt;etcd 재시작으로 자동 동기화&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;단일 노드 장애 (데이터 손상)&lt;/td&gt;
					&lt;td&gt;멤버 제거 → 재추가&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;과반수 장애 (데이터 intact)&lt;/td&gt;
					&lt;td&gt;모든 노드 재시작&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;전체 장애 / 데이터 손상&lt;/td&gt;
					&lt;td&gt;스냅샷으로 복구&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;복구-1-단일-노드-자동-재동기화&#34;&gt;복구 1: 단일 노드 자동 재동기화&lt;/h2&gt;
&lt;p&gt;etcd 데이터가 살아있고 단순히 프로세스가 죽은 경우입니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cloudflare 도메인 활성화 런북 — quick tunnel → 고정 도메인 &#43; Named Tunnel (&#43; Access)</title>
      <link>https://blog.homelab89.com/docs/homelab/domain-activation/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/homelab/domain-activation/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Date:&lt;/strong&gt; 2026-06-29
&lt;strong&gt;호스트:&lt;/strong&gt; ubuntu (home server)
&lt;strong&gt;도메인:&lt;/strong&gt; Networking / 운영
&lt;strong&gt;용도:&lt;/strong&gt; 위키 포털의 임시 &lt;code&gt;*.trycloudflare.com&lt;/code&gt; URL(리붓마다 변경)을 &lt;strong&gt;고정 커스텀 도메인&lt;/strong&gt;으로 승격.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;0-왜-필요한가-동기&#34;&gt;0. 왜 필요한가 (동기)&lt;/h2&gt;
&lt;p&gt;현재 포털은 Cloudflare &lt;strong&gt;quick tunnel&lt;/strong&gt;로 노출 중이다. quick tunnel은 &lt;code&gt;kb-tunnel&lt;/code&gt; 컨테이너가 재시작될 때마다 &lt;strong&gt;URL이 바뀐다&lt;/strong&gt;(예: 직전 리붓 후 &lt;code&gt;https://space-recovery-personnel-experimental.trycloudflare.com&lt;/code&gt;). 외울 수도, 북마크할 수도, 사내에 고정 공유할 수도 없다. → &lt;strong&gt;본인 소유 도메인 + Named Tunnel&lt;/strong&gt;로 바꾸면 리붓해도 주소가 불변이고, 선택적으로 Cloudflare Access(SSO)로 private을 보호할 수 있다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HTTP Tunneling</title>
      <link>https://blog.homelab89.com/docs/networking/http-tunneling-basics/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/networking/http-tunneling-basics/</guid>
      <description>&lt;h2 id=&#34;http-tunneling이란&#34;&gt;HTTP Tunneling이란?&lt;/h2&gt;
&lt;p&gt;HTTP Tunneling은 &lt;strong&gt;HTTP 프로토콜을 통로(터널)로 사용하여, 원래 HTTP가 아닌 트래픽을 전달하는 기법&lt;/strong&gt;이다.&lt;/p&gt;
&lt;p&gt;많은 기업 네트워크/방화벽은 HTTP(80)와 HTTPS(443) 포트만 허용한다. HTTP tunneling을 사용하면 이 제한된 환경에서도 다른 프로토콜의 트래픽을 주고받을 수 있다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>k8s-cp1 VM 네트워크 접속 불가 트러블슈팅</title>
      <link>https://blog.homelab89.com/docs/k8s/cp1-vm-network-troubleshooting/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/k8s/cp1-vm-network-troubleshooting/</guid>
      <description>&lt;blockquote&gt;&lt;p&gt;작성일: 2026-03-05&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 id=&#34;증상&#34;&gt;증상&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;virsh domifaddr k8s-cp1&lt;/code&gt; 결과에 IP가 표시되지 않음&lt;/li&gt;
&lt;li&gt;VM에 SSH 접속 불가&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;원인-분석&#34;&gt;원인 분석&lt;/h2&gt;
&lt;h3 id=&#34;원인-1-네트워크-대역-불일치&#34;&gt;원인 1: 네트워크 대역 불일치&lt;/h3&gt;
&lt;p&gt;VM은 &lt;code&gt;virbr0&lt;/code&gt; (libvirt 기본 NAT 네트워크, &lt;strong&gt;198.51.100.0/24&lt;/strong&gt;)에 연결되어 있었지만,
cloud-init network-config에서는 &lt;strong&gt;203.0.113.70/24&lt;/strong&gt;를 할당하고 있었다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>KIND Lab Usage Guide</title>
      <link>https://blog.homelab89.com/docs/k8s/kind-usage/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/k8s/kind-usage/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Verified:&lt;/strong&gt; 2026-03-02
&lt;strong&gt;환경:&lt;/strong&gt; Ubuntu 24.04 LTS, Docker 29.2.1, KIND v0.31.0&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;도구-요약&#34;&gt;도구 요약&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;도구&lt;/th&gt;
					&lt;th&gt;경로&lt;/th&gt;
					&lt;th&gt;용도&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/usr/local/bin/kind&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;클러스터 생성/삭제/관리&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;kubectl&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/usr/local/bin/kubectl&lt;/code&gt; (alias: &lt;code&gt;k&lt;/code&gt;)&lt;/td&gt;
					&lt;td&gt;K8s 리소스 조작&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;helm&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/usr/local/bin/helm&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;차트 기반 앱 배포&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;kubectl krew&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;~/.krew/bin/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;kubectl 플러그인 매니저&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;kubectl ctx&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;krew 플러그인&lt;/td&gt;
					&lt;td&gt;컨텍스트 전환&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;kubectl ns&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;krew 플러그인&lt;/td&gt;
					&lt;td&gt;네임스페이스 전환&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;k9s&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;~/.local/bin/k9s&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;터미널 기반 K8s 대시보드&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;클러스터-라이프사이클&#34;&gt;클러스터 라이프사이클&lt;/h2&gt;
&lt;h3 id=&#34;클러스터-생성&#34;&gt;클러스터 생성&lt;/h3&gt;
&lt;p&gt;구성 파일 위치: &lt;code&gt;~/kind-configs/&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux CFS Scheduler 완전 정리 (Kernel 6.x 기준)</title>
      <link>https://blog.homelab89.com/docs/kernel/cfs-eevdf-scheduler/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/kernel/cfs-eevdf-scheduler/</guid>
      <description>&lt;blockquote&gt;&lt;p&gt;작성일: 2026-02-21
커널 버전: 6.17.0-14-generic (Ubuntu 24.04.4 LTS)
목적: CFS 동작 원리, 한계, EEVDF 전환 배경까지 이해&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id=&#34;목차&#34;&gt;목차&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;#1-%ED%83%80%EC%9E%84%EB%9D%BC%EC%9D%B8&#34;&gt;타임라인&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#2-cfs-%ED%95%B5%EC%8B%AC-%EC%B2%A0%ED%95%99&#34;&gt;CFS 핵심 철학&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#3-vruntime-virtual-runtime&#34;&gt;vruntime (Virtual Runtime)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#4-red-black-tree-%EA%B8%B0%EB%B0%98-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81&#34;&gt;Red-Black Tree 기반 스케줄링&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#5-%EC%A3%BC%EC%9A%94-tunable-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0-605&#34;&gt;주요 Tunable 파라미터 (6.0~6.5)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#6-%EC%BB%A4%EB%84%90-%EC%86%8C%EC%8A%A4-%EB%82%B4%EB%B6%80-%EA%B5%AC%EC%A1%B0&#34;&gt;커널 소스 내부 구조&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#7-preemption-%EB%AA%A8%EB%8D%B8&#34;&gt;Preemption 모델&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#8-cfs%EC%9D%98-%ED%95%9C%EA%B3%84-1-sleeper-fairness-%EB%AC%B8%EC%A0%9C&#34;&gt;CFS의 한계 1: Sleeper Fairness 문제&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#9-cfs%EC%9D%98-%ED%95%9C%EA%B3%84-2-latency-%EC%A0%9C%EC%96%B4-%ED%95%9C%EA%B3%84&#34;&gt;CFS의 한계 2: Latency 제어 한계&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#10-eevdf%EB%A1%9C%EC%9D%98-%EC%A0%84%ED%99%98&#34;&gt;EEVDF로의 전환&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#11-%ED%98%84%EC%9E%AC-%EC%BB%A4%EB%84%90617-%EC%8B%A4%EC%B8%A1%EA%B0%92&#34;&gt;현재 커널(6.17) 실측값&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-타임라인&#34;&gt;1. 타임라인&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Kernel 2.6.23 (2007)  ─── CFS 도입 (Con Kolivas의 아이디어 → Ingo Molnár 구현)
        │
Kernel 2.6 ~ 5.x     ─── CFS가 기본 스케줄러로 약 16년간 사용
        │
Kernel 6.6 (2023.10)  ─── EEVDF로 교체, CFS tunable 제거
        │
Kernel 6.17 (현재)    ─── 현재 커널, EEVDF 기반
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id=&#34;2-cfs-핵심-철학&#34;&gt;2. CFS 핵심 철학&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&amp;ldquo;이상적인 멀티태스킹 CPU&amp;quot;를 소프트웨어로 근사&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Neovim &#43; LazyVim DevOps 환경 구성</title>
      <link>https://blog.homelab89.com/docs/homelab/lazyvim-devops-setup/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/homelab/lazyvim-devops-setup/</guid>
      <description>&lt;p&gt;&lt;strong&gt;날짜&lt;/strong&gt;: 2026-02-21
&lt;strong&gt;목적&lt;/strong&gt;: DevOps/SRE 작업(YAML, Bash, Dockerfile, Terraform, JSON)에 최적화된 nvim IDE 환경&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;설치-요약&#34;&gt;설치 요약&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;항목&lt;/th&gt;
					&lt;th&gt;내용&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Neovim&lt;/td&gt;
					&lt;td&gt;v0.11.6 (appimage, &lt;code&gt;/usr/local/bin/nvim&lt;/code&gt;)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;배포판&lt;/td&gt;
					&lt;td&gt;LazyVim (starter template)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;LSP&lt;/td&gt;
					&lt;td&gt;yaml, bash, dockerfile, terraform, json (extras로 자동 구성)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;파일 탐색&lt;/td&gt;
					&lt;td&gt;snacks.nvim (LazyVim 기본 picker) + ripgrep + fd&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;구문 강조&lt;/td&gt;
					&lt;td&gt;treesitter&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;아이콘&lt;/td&gt;
					&lt;td&gt;JetBrainsMono Nerd Font&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;설치된-구성-요소&#34;&gt;설치된 구성 요소&lt;/h2&gt;
&lt;h3 id=&#34;시스템-패키지&#34;&gt;시스템 패키지&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y ripgrep fd-find cmake
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;neovim-appimage&#34;&gt;Neovim (appimage)&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.appimage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chmod +x nvim-linux-x86_64.appimage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mv nvim-linux-x86_64.appimage /usr/local/bin/nvim
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;nerd-font&#34;&gt;Nerd Font&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;JetBrainsMono Nerd Font → &lt;code&gt;~/.local/share/fonts/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;터미널 에뮬레이터에서 &amp;ldquo;JetBrainsMono Nerd Font&amp;rdquo; 선택 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;lazyvim&#34;&gt;LazyVim&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/LazyVim/starter ~/.config/nvim
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rm -rf ~/.config/nvim/.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;커스텀-설정-파일&#34;&gt;커스텀 설정 파일&lt;/h2&gt;
&lt;h3 id=&#34;confignvimluapluginsdevops-extraslua&#34;&gt;&lt;code&gt;~/.config/nvim/lua/plugins/devops-extras.lua&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;DevOps 관련 LazyVim extras 활성화:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Neovim &#43; LazyVim 사용 가이드</title>
      <link>https://blog.homelab89.com/docs/homelab/lazyvim-usage/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/homelab/lazyvim-usage/</guid>
      <description>&lt;p&gt;&lt;strong&gt;날짜&lt;/strong&gt;: 2026-02-21
&lt;strong&gt;대상&lt;/strong&gt;: DevOps/SRE 워크플로우 (YAML, Bash, Dockerfile, Terraform, JSON)&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-기본-개념&#34;&gt;1. 기본 개념&lt;/h2&gt;
&lt;p&gt;LazyVim은 Neovim 위에 올라가는 배포판이다. Leader key는 &lt;code&gt;&amp;lt;Space&amp;gt;&lt;/code&gt;이며, 거의 모든 기능이 &lt;code&gt;&amp;lt;Space&amp;gt;&lt;/code&gt; + 후속 키로 시작한다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Runbook: KIND-Based Local Kubernetes Lab Setup</title>
      <link>https://blog.homelab89.com/docs/k8s/kind-lab-setup/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/k8s/kind-lab-setup/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Date:&lt;/strong&gt; 2026-03-02
&lt;strong&gt;KIND:&lt;/strong&gt; v0.31.0
&lt;strong&gt;Kubernetes:&lt;/strong&gt; v1.34.3 (single-node, control-plane only)
&lt;strong&gt;Cluster Name:&lt;/strong&gt; lab (context: kind-lab)&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;verified-environment&#34;&gt;Verified Environment&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Detail&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;OS&lt;/td&gt;
					&lt;td&gt;Ubuntu 24.04.4 LTS, Linux 6.17.0-14-generic&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Docker&lt;/td&gt;
					&lt;td&gt;29.2.1 (cgroup v2, systemd)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;kubectl&lt;/td&gt;
					&lt;td&gt;v1.35.1&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;KIND&lt;/td&gt;
					&lt;td&gt;v0.31.0&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Helm&lt;/td&gt;
					&lt;td&gt;v3.20.0&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;krew&lt;/td&gt;
					&lt;td&gt;v0.4.5 (플러그인 매니저)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;k9s&lt;/td&gt;
					&lt;td&gt;v0.50.18&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Shell&lt;/td&gt;
					&lt;td&gt;zsh + oh-my-zsh + Powerlevel10k&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-kind-설치&#34;&gt;1. KIND 설치&lt;/h2&gt;
&lt;p&gt;GitHub releases에서 바이너리를 직접 다운로드하여 설치.&lt;/p&gt;</description>
    </item>
    <item>
      <title>TLS 1.3 over HTTP Tunneling via Squid — 무엇이 문제인가</title>
      <link>https://blog.homelab89.com/docs/networking/tls13-over-squid-tunnel/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/networking/tls13-over-squid-tunnel/</guid>
      <description>&lt;h2 id=&#34;배경&#34;&gt;배경&lt;/h2&gt;
&lt;p&gt;기업 환경에서 Squid 같은 Forward Proxy는 보안·감사·캐싱 목적으로 HTTPS 트래픽을 관찰하거나 검사한다.
그런데 TLS 1.3이 도입되면서, 기존에 프록시가 의존하던 여러 관찰 포인트가 사라졌다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>tmux 설치 및 설정 구성</title>
      <link>https://blog.homelab89.com/docs/homelab/tmux-setup-and-plugins/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/homelab/tmux-setup-and-plugins/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;작업일&lt;/strong&gt;: 2026-02-21&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;환경&lt;/strong&gt;: Ubuntu 24.04.4 LTS / tmux 3.4&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;설정 파일&lt;/strong&gt;: &lt;code&gt;~/.tmux.conf&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;플러그인 경로&lt;/strong&gt;: &lt;code&gt;~/.tmux/plugins/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-설치&#34;&gt;1. 설치&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y tmux
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;tmux 3.4-1ubuntu0.1 설치됨.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;2-설정-파일-tmuxconf&#34;&gt;2. 설정 파일 (~/.tmux.conf)&lt;/h2&gt;
&lt;h3 id=&#34;21-prefix-키&#34;&gt;2.1 Prefix 키&lt;/h3&gt;
&lt;p&gt;Ctrl-a (primary)와 Ctrl-b (secondary) &lt;strong&gt;둘 다 사용 가능&lt;/strong&gt;하도록 구성.&lt;/p&gt;</description>
    </item>
    <item>
      <title>virsh &#43; cloud-init VM 생성 가이드</title>
      <link>https://blog.homelab89.com/docs/k8s/virsh-vm-creation/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/k8s/virsh-vm-creation/</guid>
      <description>&lt;blockquote&gt;&lt;p&gt;작성일: 2026-03-05
환경: Ubuntu 24.04 호스트, libvirt/KVM, cloud-init&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 id=&#34;사전-조건&#34;&gt;사전 조건&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;호스트에 &lt;code&gt;br-host&lt;/code&gt; 브릿지가 구성되어 있어야 함 (203.0.113.0/24 대역)&lt;/li&gt;
&lt;li&gt;원본 클라우드 이미지: &lt;code&gt;/var/lib/libvirt/images/noble-server-cloudimg-amd64.img&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;cloud-init 설정 디렉토리: &lt;code&gt;/var/lib/libvirt/cloud-init/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;디렉토리-구조&#34;&gt;디렉토리 구조&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/var/lib/libvirt/
├── images/
│   ├── noble-server-cloudimg-amd64.img   ← 원본 (수정 금지)
│   ├── k8s-cp1.qcow2                     ← VM별 디스크
│   └── ...
└── cloud-init/
    ├── k8s-cp1-user-data.yaml
    ├── k8s-cp1-network-config.yaml
    ├── k8s-cp1-cidata.iso
    └── ...
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;생성-절차&#34;&gt;생성 절차&lt;/h2&gt;
&lt;h3 id=&#34;1-변수-설정&#34;&gt;1. 변수 설정&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;NAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;k8s-worker1         &lt;span class=&#34;c1&#34;&gt;# VM 이름&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;IP&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;203.0.113.71          &lt;span class=&#34;c1&#34;&gt;# 할당할 IP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;MEM&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2048&lt;/span&gt;                 &lt;span class=&#34;c1&#34;&gt;# 메모리 (MB)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;VCPU&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;                   &lt;span class=&#34;c1&#34;&gt;# vCPU 수&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;DISK_SIZE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;20G            &lt;span class=&#34;c1&#34;&gt;# 디스크 크기&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;BASE_IMG&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/var/lib/libvirt/images/noble-server-cloudimg-amd64.img
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;IMG&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/var/lib/libvirt/images/&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;NAME&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;.qcow2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CLOUD_INIT_DIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/var/lib/libvirt/cloud-init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;2-user-datayaml-작성&#34;&gt;2. user-data.yaml 작성&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo tee &lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;CLOUD_INIT_DIR&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;/&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;NAME&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;-user-data.yaml &amp;gt; /dev/null &lt;span class=&#34;s&#34;&gt;&amp;lt;&amp;lt;&amp;#39;EOF&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;#cloud-config
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;hostname: k8s-worker1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;manage_etc_hosts: true
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;users:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;  - name: kube
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    sudo: ALL=(ALL) NOPASSWD:ALL
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    shell: /bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    ssh_authorized_keys:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;      - ssh-ed25519 AAAA...REPLACE-WITH-YOUR-PUBLIC-KEY... user@host
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;package_update: true
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;packages:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;  - curl
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;  - wget
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;  - vim
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;  - net-tools
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;  - jq
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;  - tree
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;  - tcpdump
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;  - socat
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;  - conntrack
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;  - ipset
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;주의: 첫 줄의 &lt;code&gt;#cloud-config&lt;/code&gt;은 반드시 포함해야 한다.&lt;/strong&gt; 없으면 cloud-init이 동작하지 않는다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>virsh를 이용한 KVM/QEMU VM 관리 가이드</title>
      <link>https://blog.homelab89.com/docs/homelab/virsh-kvm-management/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/homelab/virsh-kvm-management/</guid>
      <description>&lt;h2 id=&#34;현재-환경-상태&#34;&gt;현재 환경 상태&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;항목&lt;/th&gt;
					&lt;th&gt;값&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;libvirt&lt;/td&gt;
					&lt;td&gt;10.0.0&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;QEMU&lt;/td&gt;
					&lt;td&gt;8.2.2&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;연결 URI&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;qemu:///session&lt;/code&gt; (사용자 세션 모드)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;사용자 그룹&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;kvm&lt;/code&gt;, &lt;code&gt;libvirt&lt;/code&gt; 포함&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;스토리지 풀&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;default&lt;/code&gt; → &lt;code&gt;~/.local/share/libvirt/images/&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;OS&lt;/td&gt;
					&lt;td&gt;Ubuntu 24.04.4 LTS (Kernel 6.17)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;CPU&lt;/td&gt;
					&lt;td&gt;AMD Ryzen 9 5900X (12c/24t)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;RAM&lt;/td&gt;
					&lt;td&gt;40 GB&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;session vs system 모드&lt;/strong&gt;: &lt;code&gt;qemu:///session&lt;/code&gt;은 일반 사용자 권한으로 동작하며 네트워크 기능이 제한됩니다.
브릿지 네트워크 등 고급 네트워킹이 필요하면 &lt;code&gt;qemu:///system&lt;/code&gt;을 사용해야 합니다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>도메인·터널 토큰 발급 가이드 (당신이 직접 하는 부분)</title>
      <link>https://blog.homelab89.com/docs/homelab/domain-token-issuance/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/homelab/domain-token-issuance/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Date:&lt;/strong&gt; 2026-06-29
&lt;strong&gt;호스트:&lt;/strong&gt; ubuntu (home server)
&lt;strong&gt;도메인:&lt;/strong&gt; 운영 / 네트워킹
&lt;strong&gt;목적:&lt;/strong&gt; quick tunnel(리붓마다 URL 변경)을 고정 도메인으로 바꾸기 위해, &lt;strong&gt;본인이 Cloudflare에서 직접 해야 하는 발급 절차&lt;/strong&gt;(도메인 + Named Tunnel 토큰)만 액션 중심으로 정리. 서버 쪽 배선은 Claude가 처리.&lt;/p&gt;</description>
    </item>
    <item>
      <title>통합 위키 포털 아키텍처 (Wiki Portal Architecture)</title>
      <link>https://blog.homelab89.com/docs/homelab/wiki-portal-architecture/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/homelab/wiki-portal-architecture/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Date:&lt;/strong&gt; 2026-06-29
&lt;strong&gt;호스트:&lt;/strong&gt; ubuntu (home server, 192.168.0.2)
&lt;strong&gt;도메인:&lt;/strong&gt; Infra / Networking / 운영
&lt;strong&gt;티어:&lt;/strong&gt; PRIVATE (basic_auth) — 사내·홈랩 내부 사양 포함, 단 자격증명 값은 비포함&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-개요&#34;&gt;1. 개요&lt;/h2&gt;
&lt;p&gt;통합 위키 포털은 여러 도메인의 markdown 노트를 &lt;strong&gt;단일 Caddy 프런트도어(:8080)&lt;/strong&gt; 뒤에서 브라우저 열람용 HTML 아카이브로 묶어, 공개(open)·비공개(basic_auth)·파일허브(download)를 한 출처(same-origin)로 제공하는 시스템임. md 원본은 &lt;code&gt;md-viz&lt;/code&gt; 파이프라인이 보존하고 같은 이름의 시각화 HTML을 생성하며, Cloudflare quick tunnel로 외부에 노출함. 목적은 ① 흩어진 작업 로그·도메인 노트를 한 곳에서 검색·열람, ② 공개해도 되는 자료(public)와 홈랩 내부 사양이 든 자료(private)를 &lt;strong&gt;한 코드 경로로 분리 서빙&lt;/strong&gt;, ③ 사내 프록시 환경에서도 GET만으로 열람·다운로드가 되도록 설계하는 것임.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Claude 작업 결과를 효과적으로 이해·문서화하는 방법</title>
      <link>https://blog.homelab89.com/docs/homelab/claude-workflow-tips/</link>
      <pubDate>Sun, 28 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/homelab/claude-workflow-tips/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Date:&lt;/strong&gt; 2026-03-02&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;배경&#34;&gt;배경&lt;/h2&gt;
&lt;p&gt;매일 Claude를 사용해서 인프라 구성, 코드 작성 등의 작업을 진행할 때,
결과물을 단순히 받아쓰는 것과 &lt;strong&gt;직접 이해하고 내 것으로 만드는 것&lt;/strong&gt; 사이에는 큰 차이가 있다.
아래는 Claude의 작업 결과를 학습 자산으로 전환하기 위한 실전 팁이다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>NVIDIA Driver &#43; vLLM Complete Setup Guide</title>
      <link>https://blog.homelab89.com/docs/homelab/nvidia-driver-setup/</link>
      <pubDate>Sun, 28 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/homelab/nvidia-driver-setup/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Ubuntu 24.04 LTS | RTX 3090 | Qwen2.5-7B-Instruct&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Verified: 2026-02-17&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;verified-environment&#34;&gt;Verified Environment&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Detail&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;GPU&lt;/td&gt;
					&lt;td&gt;NVIDIA GeForce RTX 3090 (GA102, Compute Capability 8.6, Ampere)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;OS&lt;/td&gt;
					&lt;td&gt;Ubuntu 24.04.4 LTS, Linux 6.17.0-14-generic&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;NVIDIA Driver&lt;/td&gt;
					&lt;td&gt;nvidia-driver-590-open, 590.48.01 (CUDA 13.1)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Docker&lt;/td&gt;
					&lt;td&gt;29.2.1&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;NVIDIA Container Toolkit&lt;/td&gt;
					&lt;td&gt;1.18.2&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;vLLM Image&lt;/td&gt;
					&lt;td&gt;vllm/vllm-openai:latest (v0.15.1, ~29.5GB)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Model&lt;/td&gt;
					&lt;td&gt;Qwen/Qwen2.5-7B-Instruct (bf16, ~22GB VRAM)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The following must be installed before starting:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Docker&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install docker.io
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo usermod -aG docker &lt;span class=&#34;nv&#34;&gt;$USER&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# NVIDIA Container Toolkit (enables --gpus flag)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  sed &lt;span class=&#34;s1&#34;&gt;&amp;#39;s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install nvidia-container-toolkit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo nvidia-ctk runtime configure --runtime&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;docker
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl restart docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;part-1-nvidia-driver-installation&#34;&gt;Part 1: NVIDIA Driver Installation&lt;/h2&gt;
&lt;h3 id=&#34;step-1-check-recommended-driver&#34;&gt;Step 1. Check recommended driver&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ubuntu-drivers devices
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Look for the &lt;code&gt;recommended&lt;/code&gt; line:&lt;/p&gt;</description>
    </item>
    <item>
      <title>NVIDIA 드라이버 다운그레이드 작업 기록</title>
      <link>https://blog.homelab89.com/docs/homelab/nvidia-driver-downgrade/</link>
      <pubDate>Sun, 28 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/homelab/nvidia-driver-downgrade/</guid>
      <description>&lt;h2 id=&#34;문제-상황&#34;&gt;문제 상황&lt;/h2&gt;
&lt;p&gt;vLLM Docker 컨테이너(&lt;code&gt;vllm/vllm-openai:latest&lt;/code&gt;, v0.15.1) 실행 시 아래 에러로 시작 실패:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;RuntimeError: Unexpected error from cudaGetDeviceCount().
Error 803: system has unsupported display driver / cuda driver combination
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;원인-분석&#34;&gt;원인 분석&lt;/h2&gt;
&lt;p&gt;호스트와 컨테이너 간 CUDA 버전 불일치:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Runbook: Mount /dev/sdd1 and Configure Samba Share</title>
      <link>https://blog.homelab89.com/docs/homelab/sdd1-mount-and-samba-setup/</link>
      <pubDate>Sun, 28 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/homelab/sdd1-mount-and-samba-setup/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Date:&lt;/strong&gt; 2026-02-18
&lt;strong&gt;Disk:&lt;/strong&gt; /dev/sdd1 (ext4, label: data, ~3.6TB)
&lt;strong&gt;Mount Point:&lt;/strong&gt; /mnt/data
&lt;strong&gt;Samba Share Name:&lt;/strong&gt; Data&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-create-mount-point&#34;&gt;1. Create Mount Point&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mkdir -p /mnt/data
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;2-configure-etcfstab&#34;&gt;2. Configure /etc/fstab&lt;/h2&gt;
&lt;p&gt;The original entry had invalid options for ext4 (&lt;code&gt;uid&lt;/code&gt;, &lt;code&gt;gid&lt;/code&gt;, &lt;code&gt;iocharset&lt;/code&gt;, &lt;code&gt;umask&lt;/code&gt; are for NTFS/FAT only).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;UUID=94a20060-e08f-40e4-b846-0f7a9398da04 /mnt/data ext4   defaults,uid=1000,gid=1000,iocharset=utf8,umask=022  0       0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;After:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;UUID=94a20060-e08f-40e4-b846-0f7a9398da04 /mnt/data ext4   defaults  0  2
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;3-mount-and-set-ownership&#34;&gt;3. Mount and Set Ownership&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mount -a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo chown jinsoo:jinsoo /mnt/data
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;4-configure-samba-share&#34;&gt;4. Configure Samba Share&lt;/h2&gt;
&lt;p&gt;Added the following section to &lt;code&gt;/etc/samba/smb.conf&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Workstation 스펙 및 용도 분석</title>
      <link>https://blog.homelab89.com/docs/homelab/workstation-spec-and-usage/</link>
      <pubDate>Sun, 28 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.homelab89.com/docs/homelab/workstation-spec-and-usage/</guid>
      <description>&lt;blockquote&gt;&lt;p&gt;작성일: 2026-03-02 | 호스트명: ubuntu | Uptime: 9일+&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id=&#34;1-시스템-개요&#34;&gt;1. 시스템 개요&lt;/h2&gt;
&lt;p&gt;DevOps/SRE + LLMOps 실험을 위한 로컬 랩 워크스테이션.
커널, 네트워킹, eBPF, KVM, Kubernetes, LLM 등 5개 도메인의 딥다이브 실험 환경으로 활용 중.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
