쿠버네티스 312

📌 [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..

📌 [DaemonSet 심화편 #14] DaemonSet과 NodeSelector vs Node Affinity 비교: 어떤 기준으로 사용할 것인가

1️⃣ 개요DaemonSet은 기본적으로 모든 노드에 하나씩 Pod을 배포하지만,운영 환경에 따라 특정 노드에만 배포하고 싶을 때가 있습니다.예를 들어, GPU 노드, 특정 가용 영역(zone), 특정 라벨이 붙은 노드 등만 대상으로 DaemonSet을 배포하고 싶을 때NodeSelector 또는 Node Affinity 설정을 활용할 수 있습니다.이번 글에서는 두 설정 방식의 차이점, 장단점, 사용 기준을 비교하고DaemonSet에 어떻게 적용할 수 있는지 설명합니다.2️⃣ NodeSelector vs Node Affinity 비교 항목 NodeSelector Node Affinity 구문 복잡도단순 (key=value)복잡한 조건 구성 가능조건 표현단일 key/value만 가능In, NotIn, ..

📌 [DaemonSet 심화편 #13] DaemonSet의 이미지 Pull 전략: 이미지 캐시 관리와 정책 구성

1️⃣ 개요DaemonSet은 클러스터의 모든 노드에서 동일한 컨테이너 이미지를 풀링(pull)하고 실행하게 됩니다.이때 이미지가 변경되었을 때 자동으로 최신 버전을 반영하거나, 모든 노드에 동일한 이미지가 유지되도록 보장하려면이미지 Pull 정책(ImagePullPolicy)을 적절하게 구성하는 것이 중요합니다.이번 글에서는 DaemonSet에 설정 가능한 ImagePullPolicy의 종류와 적용 전략, 이미지 캐시 관리 방법을 소개합니다.2️⃣ ImagePullPolicy란? 정책 설명 사용 시점 Always항상 이미지 풀링 (캐시 무시):latest 태그 사용 시 권장IfNotPresent노드에 이미지가 없을 경우에만 풀링일반적인 운영 환경에서 사용Never절대 이미지 풀링하지 않음오프라인 환..

📌 [DaemonSet 심화편 #12] DaemonSet Pod에 Host PID/IPC/UTS 네임스페이스 공유 설정하기

1️⃣ 개요DaemonSet은 각 노드에 하나씩 Pod을 배포하기 때문에, 시스템 수준의 정보를 수집하거나 네임스페이스를 직접 공유해야 하는 경우에 유리합니다.이때 Pod의 네임스페이스 격리 기능을 해제하고, 호스트 네임스페이스(PID, IPC, UTS)를 공유하면노드 상의 프로세스, 네트워크, 호스트 이름 등에 접근할 수 있습니다.이번 글에서는 DaemonSet Pod에서 hostPID, hostIPC, hostUTS 설정을 통해 시스템 정보를 공유받는 방법을 정리합니다.2️⃣ Host 네임스페이스 공유란? 항목  설명 hostPID: true노드의 프로세스 ID 네임스페이스를 공유 (다른 프로세스 목록 접근 가능)hostIPC: true노드의 IPC(프로세스 간 통신) 네임스페이스 공유hostUTS..

📌 [DaemonSet 심화편 #11] DaemonSet Pod의 고가용성을 위한 Anti-Affinity 구성 전략

1️⃣ 개요DaemonSet은 클러스터의 모든 노드에 Pod를 하나씩 배포하는 구조입니다.그러나 클러스터 내에 스케줄링이 중복되거나, 특수한 노드 그룹 간 충돌을 방지하고 싶을 때,Pod 간 격리 또는 분산 전략을 설정하는 것이 필요합니다.이를 위한 대표적인 방법이 Pod Anti-Affinity 설정입니다.이번 글에서는 DaemonSet Pod가 특정 노드에 몰리지 않도록 설정하거나, 다른 워크로드와 격리하는 전략을 소개합니다.2️⃣ Affinity와 Anti-Affinity 기본 정리 유형 설명 대표 키 Node Affinity특정 노드에 배포를 유도하거나 제한nodeAffinityPod Affinity특정 Pod와 같은 노드에 배포되도록 설정podAffinityPod Anti-Affinity특정..

📌 [DaemonSet 심화편 #10] DaemonSet과 Lifecycle Hook: 시작 및 종료 시 작업 자동화

1️⃣ 개요DaemonSet은 노드마다 Pod을 자동으로 배포하는 구조이지만, 때로는 컨테이너가 시작되거나 종료될 때 추가 작업을 자동으로 수행해야 할 수 있습니다.예를 들어, 시작 시 노드 정보를 수집하거나 종료 전 로그를 전송하는 등의 작업이 이에 해당됩니다.이럴 때 유용한 기능이 바로 lifecycle 설정을 통한 Hook 구성입니다.이번 글에서는 DaemonSet에서 lifecycle 설정을 활용하여 Pod의 시작/종료 작업을 자동화하는 방법을 소개합니다.2️⃣ Kubernetes Lifecycle Hook이란? Hook 종류 트리거 시점 설명 postStart컨테이너가 시작된 직후주로 초기화 작업, 외부 알림, 준비 동작 수행preStop컨테이너가 종료되기 직전로그 정리, 연결 해제, 상태 ..

📌 [DaemonSet 심화편 #9] DaemonSet 리소스 관리: CPU와 메모리 제한 설정 전략

1️⃣ 개요DaemonSet은 클러스터의 모든 노드에서 하나씩 실행되는 구조이기 때문에, 리소스를 적절히 설정하지 않으면 전체 클러스터에 부담을 줄 수 있습니다.특히 노드 수가 많아질수록 전체 DaemonSet의 리소스 소비량도 선형 증가하게 되므로, CPU와 메모리의 요청(Request) 및 제한(Limit)을 명확히 설정하는 것이 중요합니다.이번 글에서는 DaemonSet 컨테이너의 리소스를 효율적으로 설정하는 방법과 구성 예시를 소개합니다.2️⃣ Kubernetes 리소스 관리 기본 용어 정리  항목 설명 Request컨테이너가 실행되기 위해 보장받아야 하는 최소 자원 (스케줄링 기준)Limit컨테이너가 사용할 수 있는 최대 자원 (초과 시 throttling 또는 종료 가능) 📌 요약 정리:R..

728x90