<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kubernetes Architecture on Joonlog</title><link>https://joonlog.github.io/tags/kubernetes-architecture/</link><description>Recent content in Kubernetes Architecture on Joonlog</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><lastBuildDate>Mon, 04 Aug 2025 09:00:00 +0900</lastBuildDate><atom:link href="https://joonlog.github.io/tags/kubernetes-architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>Kubernetes 아키텍쳐</title><link>https://joonlog.github.io/p/kubernetes-%EC%95%84%ED%82%A4%ED%85%8D%EC%B3%90/</link><pubDate>Mon, 04 Aug 2025 09:00:00 +0900</pubDate><guid>https://joonlog.github.io/p/kubernetes-%EC%95%84%ED%82%A4%ED%85%8D%EC%B3%90/</guid><description>&lt;h2 id="master-node"&gt;Master Node
&lt;/h2&gt;&lt;h3 id="kube-apiserver"&gt;kube-apiserver
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Kubernetes 클러스터의 프론트엔드입니다.&lt;/li&gt;
&lt;li&gt;REST API를 통해 클러스터 상태를 읽고 조작하는 모든 요청을 처리합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="kubectl"&gt;kubectl
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;kubectl&lt;/code&gt;은 &lt;strong&gt;kube-apiserver&lt;/strong&gt;에 요청을 보냅니다. (예: &lt;code&gt;kubectl get nodes&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;또는, &lt;code&gt;kubectl&lt;/code&gt;을 사용하지 않고도 직접 kube-apiserver에 요청을 보낼 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="controller-manager"&gt;&lt;strong&gt;controller-manager&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;클러스터의 상태를 지속적으로 모니터링하고, 원하는 상태를 유지합니다.&lt;/li&gt;
&lt;li&gt;다양한 컨트롤러들(잡, 노드, 서비스 계정, 엔드포인트)을 관리하여 리소스의 상태를 조정합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="kube-scheduler"&gt;&lt;strong&gt;kube-scheduler&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;스케줄러&lt;/strong&gt;는 새로 생성된 Pod를 워커 노드에 배치하는 역할을 합니다.&lt;/li&gt;
&lt;li&gt;Pod의 리소스 요구사항과 각 노드의 리소스 가용성을 고려해 최적의 노드에 배치합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="etcd"&gt;&lt;strong&gt;ETCD&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Kubernetes의 클러스터 데이터를 저장하는 분산 key-value 데이터베이스입니다.&lt;/li&gt;
&lt;li&gt;클러스터의 현재 상태, 구성 정보, 시크릿, ConfigMap 등을 저장하는 데 사용됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="worker-node"&gt;Worker Node
&lt;/h2&gt;&lt;h3 id="kubelet"&gt;&lt;strong&gt;kubelet&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;각 워커 노드에서 실행되며, API 서버와 통신하면서 Pod의 라이프사이클을 관리합니다.&lt;/li&gt;
&lt;li&gt;kube-scheduler가 할당한 작업을 워커 노드에서 실행합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="kube-proxy"&gt;&lt;strong&gt;kube-proxy&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;네트워크 트래픽을 라우팅하고 로드밸런싱하는 데 사용되는 기본 네트워크 프록시입니다.&lt;/li&gt;
&lt;li&gt;Pod과 서비스 간의 통신 규칙을 설정합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="container-runtime"&gt;container runtime
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;실제 컨테이너를 실행하는 소프트웨어입니다.&lt;/li&gt;
&lt;li&gt;Containerd, CRI-O 등이 Kubernetes에서 사용될 수 있으며, 컨테이너 이미지를 다운로드하고 실행, 관리하는 역할을 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="addons"&gt;Addons
&lt;/h2&gt;&lt;h3 id="coredns"&gt;&lt;strong&gt;CoreDNS&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;클러스터 내에서 서비스 디스커버리와 DNS 네임 리졸버를 제공합니다&lt;/li&gt;
&lt;li&gt;이를 통해 서비스 이름을 클러스터 내부의 IP로 변환할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="cni"&gt;&lt;strong&gt;CNI&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;네트워크를 관리하기 위한 표준 인터페이스입니다.&lt;/li&gt;
&lt;li&gt;각 Pod에 IP 주소를 할당해서, 다른 Pod와의 통신을 가능하게 만듭니다.&lt;/li&gt;
&lt;li&gt;대표적인 플러그인으로는 Calico, Flannel 등이 있습니다.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>