DaemonSet 28

📌 [DaemonSet 심화편 #24] DaemonSet의 ReplicaSet과의 차이점 분석: 운영 구조와 스케줄링 비교

1️⃣ 개요Kubernetes에서 Pod을 배포하는 대표적인 리소스로는 ReplicaSet과 DaemonSet이 있습니다.둘 다 여러 개의 Pod을 생성하는 역할을 하지만, Pod의 배포 방식과 목적은 완전히 다릅니다.이 글에서는 DaemonSet과 ReplicaSet의 개념적 차이, 스케줄링 방식, 운영 목적의 차이점을 비교하여둘 중 어떤 리소스를 선택해야 하는지 명확히 이해할 수 있도록 구성하였습니다.2️⃣ 역할 차이 요약 항목 DaemonSet ReplicaSet Pod 수 조절 방식노드 수에 따라 자동 결정 (1개/노드)수동으로 .spec.replicas 수 지정배포 대상클러스터의 모든 노드 (혹은 특정 조건의 노드)스케줄링 가능한 노드 중 임의 선택목적노드 기반 작업 (모니터링, 로그 수집 ..

📌 [DaemonSet 심화편 #23] DaemonSet과 Metrics Server 연동을 통한 노드 리소스 수집 방식

1️⃣ 개요Kubernetes 클러스터에서는 각 노드 및 Pod의 리소스 사용량(CPU, 메모리 등)을 수집하여 모니터링하는 것이 중요합니다.이를 위해 Metrics Server를 설치하고, 각 노드의 리소스를 주기적으로 수집하여 외부 시스템으로 전달하는 구조를 구성할 수 있습니다.이 글에서는 DaemonSet을 활용하여 Metrics Server의 정보를 기반으로 각 노드의 리소스를 수집하고, 이를 가공하거나 외부에 전송하는 방식을 설명합니다.2️⃣ Metrics Server란? 항목 설명 역할Kubernetes에서 CPU, 메모리 등 리소스 사용량을 수집하고 제공하는 컴포넌트데이터 소스각 노드의 Kubelet에서 제공하는 /metrics/resource API활용 위치kubectl top, HPA(..

📌 [DaemonSet 심화편 #22] DaemonSet이 적용되지 않는 노드 감지 및 복구 자동화 방안

1️⃣ 개요DaemonSet은 클러스터의 모든 노드에 Pod을 하나씩 자동으로 배포하는 구조입니다.하지만 다양한 이유로 인해 특정 노드에 DaemonSet Pod이 배포되지 않거나, 실패한 상태로 남는 경우가 있습니다.이 글에서는 DaemonSet이 일부 노드에 정상적으로 배포되지 않았을 때 이를 자동으로 감지하고, 복구하는 방법에 대해 설명합니다.2️⃣ DaemonSet이 노드에 배포되지 않는 주요 원인 유형 설명 Taint/Toleration 불일치해당 노드에 Taint가 설정되어 있고, DaemonSet이 이를 Toleration하지 않음NodeSelector/NodeAffinity 조건 불일치노드의 라벨 조건과 맞지 않아 스케줄링에서 제외됨리소스 부족CPU, 메모리 부족으로 스케줄링 불가Pod ..

📌 [DaemonSet 심화편 #21] DaemonSet과 ConfigMap 동기화 전략: 노드별 구성 분리와 업데이트 대응

1️⃣ 개요DaemonSet은 모든 노드에 동일한 Pod을 배포하지만, 노드 환경에 따라 조금씩 다른 설정이 필요할 때가 있습니다.예를 들어, 로그 수집 대상 경로나 디바이스 경로가 노드마다 다를 수 있고,클러스터 관리자가 ConfigMap을 통해 설정을 주기적으로 갱신해야 할 수도 있습니다.이 글에서는 DaemonSet과 ConfigMap을 연동하여 노드별 구성을 적용하거나 설정 변경에 유연하게 대응하는 방법을 정리합니다.2️⃣ ConfigMap 기본 사용 방식apiVersion: v1kind: ConfigMapmetadata: name: log-configdata: log_level: "INFO" log_path: "/var/log/messages"📌 설명이 ConfigMap은 로그 수집기의 ..

📌 [DaemonSet 심화편 #20] DaemonSet과 Kubernetes 이벤트(Event) 감지 에이전트 구성 방법

1️⃣ 개요Kubernetes 환경에서 DaemonSet은 노드 단위의 작업을 자동화하거나, 시스템 이벤트를 감지하는 데 활용됩니다.특히, 노드에서 발생하는 이벤트를 수집하고 분석하는 로직을 DaemonSet으로 구성하면모든 노드에서 일어나는 다양한 이벤트를 빠르게 파악할 수 있습니다.이번 글에서는 DaemonSet을 통해 Kubernetes 이벤트 감지 및 알림용 에이전트를 구성하는 방법을 설명합니다.2️⃣ 이벤트 감지 에이전트 구성 목적 감지 항목 예시 활용 목적 Pod OOMKilled, CrashLoopBackOff장애 대응 자동화노드 NotReady 이벤트노드 상태 모니터링PersistentVolume 오류스토리지 이슈 조기 감지컨테이너 ImagePullBackOffCI/CD 문제 추적✅ 위 ..

📌 [DaemonSet 심화편 #19] DaemonSet의 Scheduling 제한: 특정 Zone 또는 Region만 대상으로 설정하기

1️⃣ 개요Kubernetes 클러스터는 클라우드 또는 온프레미스 환경에서 여러 Zone 또는 Region에 걸쳐 구성될 수 있습니다.이때 DaemonSet을 클러스터 전체가 아닌 **특정 영역(Zone 또는 Region)**에만 배포하고 싶은 경우,Node Affinity를 활용하여 스케줄링 대상을 제한할 수 있습니다.이번 글에서는 DaemonSet Pod이 특정 Zone/Region에만 배포되도록 제어하는 방법과 설정 전략을 소개합니다.2️⃣ Zone / Region 설정 키Kubernetes에서는 클라우드 환경이나 클러스터 구성 도구를 통해 자동으로 아래 라벨이 노드에 추가됩니다. 라벨 키 설명 topology.kubernetes.io/zone노드가 위치한 Zone 정보topology.kuberne..

📌 [DaemonSet 심화편 #18] DaemonSet과 SecurityContext: 노드 접근 권한 제한 설정

1️⃣ 개요DaemonSet은 모든 노드에서 실행되기 때문에, Pod 내부에서 호스트 시스템의 민감한 영역에 접근해야 할 경우가 있습니다.하지만 이러한 접근은 보안적으로 위험할 수 있으므로, 필요한 최소한의 권한만 부여하는 것이 중요합니다.Kubernetes는 securityContext를 통해 컨테이너 수준의 권한 제한, 사용자 설정, 파일 시스템 보호 등을 구성할 수 있게 해줍니다.이번 글에서는 DaemonSet에서 securityContext를 활용하여 권한을 제어하는 방법을 정리합니다.2️⃣ PodSecurityContext vs Container SecurityContext 항목 PodSecurityContext Container SecurityContext 적용 범위Pod 전체개별 컨테이너..

📌 [DaemonSet 심화편 #17] DaemonSet과 Multus를 활용한 멀티 네트워크 구성

1️⃣ 개요기본적으로 Kubernetes Pod은 하나의 기본 네트워크(CNI)를 통해 통신합니다. 하지만,멀티 네트워크가 필요한 경우에는 Multus CNI를 사용해 Pod에 여러 개의 네트워크 인터페이스를 부여할 수 있습니다.이 글에서는 DaemonSet에 Multus를 적용하여 노드마다 멀티 네트워크가 연결된 Pod를 실행하는 방법을 설명합니다.2️⃣ Multus란? 항목 설명 역할Kubernetes CNI 플러그인으로, Pod에 여러 개의 네트워크 인터페이스 부여 가능용도데이터/관리 네트워크 분리, SR-IOV, DPDK 환경, 이중화 등주요 기능기본 네트워크 외의 추가 네트워크 (Secondary Network) 연결 지원✅ Multus는 **다양한 네트워크 플러그인(CNI)**과 함께 사용할..

📌 [DaemonSet 심화편 #16] DaemonSet Pod의 로그 수집 설계: Sidecar 활용과 로그 볼륨 전략

1️⃣ 개요DaemonSet은 보통 클러스터의 모든 노드에서 로그, 메트릭, 이벤트를 수집하는 역할을 합니다.그중에서도 로그 수집용 DaemonSet은 Node Exporter, Fluent Bit, Logstash, Vector 등 다양한 로그 수집기를 노드 단위로 배포하는 데 활용됩니다.이번 글에서는 DaemonSet을 활용한 로그 수집 구조를 설계하는 방법과,Sidecar 패턴, HostPath 마운트, 로그 볼륨 전략을 어떻게 설정하면 좋은지 정리합니다.2️⃣ 로그 수집용 DaemonSet 구조 요약로그 수집용 DaemonSet은 일반적으로 다음의 구조를 가집니다:모든 노드에 배포노드의 /var/log 디렉토리를 컨테이너 내부로 마운트로그 수집기를 통해 외부 로그 수집 시스템(예: Elastics..

📌 [DaemonSet 심화편 #15] DaemonSet과 Init Container: 노드별 초기화 작업 처리 전략

1️⃣ 개요DaemonSet은 모든 노드에 하나씩 Pod을 배포하여, 노드 단위의 작업을 수행하는 데 적합한 구조입니다.때로는 본 컨테이너가 실행되기 전에 노드별로 초기화 작업을 먼저 수행해야 하는 상황이 있습니다.예를 들어, 로그 디렉터리 생성, 초기 설정 파일 복사, 노드 정보 기록 등의 작업이 이에 해당됩니다.이럴 때는 Init Container를 활용하여 초기화 작업을 처리하고,해당 작업이 끝난 후에 본 컨테이너가 실행되도록 구성할 수 있습니다.2️⃣ Init Container란? 항목 설명 실행 시점본 컨테이너 실행 전에 순차적으로 실행됨용도설정 초기화, 디렉터리 준비, 외부 검사 등특징본 컨테이너와는 별도의 컨테이너 이미지/명령어 사용 가능동작 방식순서대로 실행되며, 모든 Init Conta..

728x90