<?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>Kubernetes on homelab89</title>
    <link>https://blog.homelab89.com/tags/kubernetes/</link>
    <description>Recent content in Kubernetes on homelab89</description>
    <generator>Hugo</generator>
    <language>ko-KR</language>
    <lastBuildDate>Thu, 02 Jul 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.homelab89.com/tags/kubernetes/index.xml" rel="self" type="application/rss+xml" />
    <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>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>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>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>
  </channel>
</rss>
