<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Kubernetes on KSC</title>
		<link>https://sckwon.dev/tags/kubernetes/</link>
		<description>Recent content in Kubernetes on KSC</description>
		<generator>Hugo</generator>
		<language>ko-KR</language>
		
		
		
		
			<lastBuildDate>Wed, 05 Aug 2026 21:36:51 +0900</lastBuildDate>
		
			<atom:link href="https://sckwon.dev/tags/kubernetes/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Helm 차트 관리와 Ingress 설정, K8s 트러블슈팅 방법</title>
				<link>https://sckwon.dev/posts/kubernetes-advanced-2/</link>
				<pubDate>Wed, 05 Aug 2026 21:36:51 +0900</pubDate>
				<guid>https://sckwon.dev/posts/kubernetes-advanced-2/</guid>
				<description>&lt;h2 id=&#34;개요&#34;&gt;개요&lt;/h2&gt;&#xA;&lt;p&gt;심화 1편이 &amp;ldquo;Pod를 안정적으로 운영하기 위한 설정&amp;quot;이었다면, 이 글은 &amp;ldquo;여러 서비스를 효율적으로 관리하고, 문제가 생겼을 때 빠르게 찾는 방법&amp;quot;에 초점을 둡니다.&lt;/p&gt;&#xA;&lt;p&gt;Helm으로 반복 배포를 줄이고, Ingress Controller로 외부 트래픽을 세밀하게 제어하고, 장애 상황에서 원인을 빠르게 좁히는 패턴을 정리합니다.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-helm--패키지-관리&#34;&gt;1. Helm — 패키지 관리&lt;/h2&gt;&#xA;&#xA;&#xA;&#xA;&lt;details class=&#34;interview-answer&#34; open&gt;&#xA;  &lt;summary&gt;정리 보기&lt;/summary&gt;&#xA;  &lt;div class=&#34;interview-answer-body&#34;&gt;&#xA;    &lt;p&gt;&lt;strong&gt;Helm = K8s의 패키지 매니저&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;환경별로 값이 다른 YAML을 각각 관리하면 파일 수가 환경 수만큼 늘어납니다. Helm은 이걸 하나의 패키지(Chart)로 묶어서 변수만 바꿔 배포할 수 있게 합니다.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Kubernetes Probe, HPA, RBAC — 상태 점검, 오토스케일링, 접근 제어</title>
				<link>https://sckwon.dev/posts/kubernetes-advanced-1/</link>
				<pubDate>Sun, 02 Aug 2026 18:56:01 +0900</pubDate>
				<guid>https://sckwon.dev/posts/kubernetes-advanced-1/</guid>
				<description>&lt;h2 id=&#34;개요&#34;&gt;개요&lt;/h2&gt;&#xA;&lt;p&gt;기본편이 &amp;ldquo;Kubernetes의 구성요소와 사용법&amp;quot;이었다면, 이 글은 Probe, 리소스 requests/limits, HPA, 배포 전략, RBAC, NetworkPolicy, 스케줄링 제어를 다룹니다.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-probe--상태-점검&#34;&gt;1. Probe — 상태 점검&lt;/h2&gt;&#xA;&#xA;&#xA;&#xA;&lt;details class=&#34;interview-answer&#34; open&gt;&#xA;  &lt;summary&gt;정리 보기&lt;/summary&gt;&#xA;  &lt;div class=&#34;interview-answer-body&#34;&gt;&#xA;    &lt;p&gt;&lt;strong&gt;&amp;ldquo;떠 있는 것&amp;quot;과 &amp;ldquo;정상 동작하는 것&amp;quot;은 다르다&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;프로세스는 살아있는데 응답을 못 하는 경우가 있습니다. DB 커넥션 풀이 고갈되거나, 데드락에 빠지거나. Probe는 K8s가 Pod의 실제 건강 상태를 주기적으로 확인하는 메커니즘입니다.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;3종류의 Probe&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Probe&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;질문&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;실패 시 동작&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;strong&gt;livenessProbe&lt;/strong&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&amp;ldquo;살아있냐?&amp;rdquo;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;kubelet이 &lt;strong&gt;해당 컨테이너&lt;/strong&gt;를 죽이고 restartPolicy에 따라 재시작&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;strong&gt;readinessProbe&lt;/strong&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&amp;ldquo;요청 받을 준비 됐냐?&amp;rdquo;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;엔드포인트 컨트롤러가 해당 Pod의 IP를 매칭되는 모든 Service의 엔드포인트에서 제거 (컨테이너는 계속 실행)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;strong&gt;startupProbe&lt;/strong&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&amp;ldquo;아직 부팅 중이냐?&amp;rdquo;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;kubelet이 컨테이너를 죽이고 restartPolicy에 따라 재시작&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;재시작 대상은 Pod 전체가 아니라 문제가 된 컨테이너입니다. 다른 컨테이너는 영향을 받지 않습니다&lt;/li&gt;&#xA;&lt;li&gt;startupProbe의 &amp;ldquo;liveness/readiness 비활성화&amp;quot;는 실패 시 동작이 아니라, startupProbe가 성공하기 전까지의 동작입니다. startupProbe가 설정돼 있으면 성공할 때까지 liveness/readiness를 실행하지 않습니다&lt;/li&gt;&#xA;&lt;li&gt;startup과 liveness는 한 번만 실행되는 게 아니라 &lt;code&gt;failureThreshold&lt;/code&gt; 횟수만큼 연속 실패해야 재시작으로 이어집니다. readiness는 컨테이너 수명 전체에 걸쳐 계속 실행됩니다&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;YAML 예시&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Kubernetes 클러스터 구조와 핵심 오브젝트 이해하기</title>
				<link>https://sckwon.dev/posts/kubernetes-basics/</link>
				<pubDate>Sun, 26 Jul 2026 09:00:00 +0900</pubDate>
				<guid>https://sckwon.dev/posts/kubernetes-basics/</guid>
				<description>&lt;h2 id=&#34;개요&#34;&gt;개요&lt;/h2&gt;&#xA;&lt;p&gt;Kubernetes(K8s)는 컨테이너를 여러 서버에 자동으로 배포하고, 죽으면 다시 띄우고, 부하가 늘면 늘려주는 도구입니다.&lt;/p&gt;&#xA;&lt;p&gt;Docker가 &amp;ldquo;컨테이너 하나를 만들고 실행하는 것&amp;quot;이라면, Kubernetes는 &amp;ldquo;그 컨테이너를 여러 노드에 걸쳐 운영하는 것&amp;quot;입니다.&lt;/p&gt;&#xA;&lt;p&gt;이 글은 각 개념을 &lt;strong&gt;정의, 필요한 이유, 관련 명령어&lt;/strong&gt; 순으로 정리합니다.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-클러스터-구조&#34;&gt;1. 클러스터 구조&lt;/h2&gt;&#xA;&#xA;&#xA;&#xA;&lt;details class=&#34;interview-answer&#34; open&gt;&#xA;  &lt;summary&gt;정리 보기&lt;/summary&gt;&#xA;  &lt;div class=&#34;interview-answer-body&#34;&gt;&#xA;    &lt;p&gt;&lt;strong&gt;클러스터 = 컨트롤 플레인 + 노드&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Kubernetes 클러스터는 크게 두 부분으로 나뉩니다.&lt;/p&gt;&#xA;&lt;div class=&#34;code-block&#34;&gt;&#xA;    &lt;button class=&#34;code-copy&#34; type=&#34;button&#34; hidden aria-label=&#34;Copy code to clipboard&#34;&gt;&#xA;      &lt;span class=&#34;code-copy-label&#34; aria-hidden=&#34;true&#34;&gt;Copy&lt;/span&gt;&#xA;    &lt;/button&gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;┌─────────────────────────────────────────────┐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│                 Control Plane                │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│  API Server / Scheduler / Controller / etcd  │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;└──────────────────────┬──────────────────────┘&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                       │ 명령 전달&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       ┌───────────────┼───────────────┐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       ▼               ▼               ▼&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;┌────────────┐  ┌────────────┐  ┌────────────┐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│   Node 1   │  │   Node 2   │  │   Node 3   │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│  (워커 노드) │  │  (워커 노드) │  │  (워커 노드) │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│  Pod Pod   │  │  Pod Pod   │  │  Pod Pod   │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;└────────────┘  └────────────┘  └────────────┘&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&lt;p&gt;&lt;strong&gt;Control Plane (컨트롤 플레인)&lt;/strong&gt; — 클러스터 상태를 관리하는 컴포넌트 모음&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
