Kubernetes DaemonSet

2023. 4. 7. 22:56·⚙️ Ops/Kubernetes

💡 DaemonSet

클러스터 전체에서 공통적으로 사용되는 pod를 띄울때 사용하는 컨트롤러

ex: 로그수집기나 노드를 모니터링하는 pod 등 클러스터 전체에 항상 실행시켜 둬야 하는 pod를 실행할때 사용

taint와 tolleration을 사용하여 특정 노드들에만 실행가능 (tolleration은 taint보다 우선순위가 더 높다)


Yaml 생성

# DaemonSet 생성

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: test-elasticsearch
  namespace: kube-system
  labels:
    k8s-app: test-logging
spec:
  selector:
    matchLabels:
      name: test-elasticsearch
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        name: test-elasticsearch
    spec:
      containers:
      - name: container-elasticsearch
        image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2
        resources:
          limits:
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 200Mi
      terminationGracePeriodSeconds: 30
  • apiVersion apps/v1 → 쿠버네티스의 apps/v1 API를 사용
  • kind: DaemonSet → DaemonSet의 작업으로 명시
  • metadata.name → DaemonSet의 이름을 설정
  • metadata.namespace → 네임스페이스를 지정 합니다. kube-system은 쿠버네티스 시스템에서 직접 관리하며 보통 설정 또는 관리용 파드를 설정
  • metadata.labels → DaemonSet를 식별할 수 있는 레이블을 지정
  • spec.selector.matchLabels → 어떤 레이블의 파드를 선택하여 관리할 지 설정
  • spec.updateStrategy.type → 업데이트 방식을 설정
    이 코드에서는 롤링 업데이트로 설정 돼었으며 OnDelete 등의 방식으로 변경이 가능
    롤링 업데이트는 설정 변경하면 이전 파드를 삭제하고 새로운 파드를 생성
  • spec.template.metadata.labels.name → 생성할 파드의 레이블을 파드명: "" 으로 지정
  • spec.template.spec.containers → 하위 옵션들은 컨테이너의 이름, 이미지, 메모리와 CPU의 자원 할당
  • terminationGracePeriodSeconds 30 → 기본적으로 kubelet에서 파드에 SIGTERM을 보낸 후
    일정 시간동안 graceful shutdown이 되지 않는다면 SIGKILL을 보내서 파드를 강제 종료
    이 옵션은 그레이스풀 셧다운 대기 시간을 30초로 지정하여 30초 동안 정상적으로 종료되지 않을 경우 SIGKILL을 보내서 강제 종료 시킴

img

저작자표시 (새창열림)

'⚙️ Ops > Kubernetes' 카테고리의 다른 글

Kubernetes ConfigMap  (0) 2023.04.07
Kubernetes Service & Service Discovery  (0) 2023.04.07
Kubernetes StatefulSet  (0) 2023.04.06
Kubernetes Deployment  (0) 2023.04.06
Kubernetes Labels  (0) 2023.04.06
'⚙️ Ops/Kubernetes' 카테고리의 다른 글
  • Kubernetes ConfigMap
  • Kubernetes Service & Service Discovery
  • Kubernetes StatefulSet
  • Kubernetes Deployment
신건우
신건우
조용한 개발자
  • 신건우
    우주먼지
    신건우
  • 전체
    오늘
    어제
    • 분류 전체보기 (422)
      • 📘 Frontend (71)
        • Markup (1)
        • Style Sheet (2)
        • Dart (8)
        • Javascript (12)
        • TypeScript (1)
        • Vue (36)
        • React (2)
        • Flutter (9)
      • 📘 Backend (143)
        • Java (34)
        • Concurrency (19)
        • Reflection (1)
        • Kotlin (29)
        • Python (1)
        • Spring (42)
        • Spring Cloud (5)
        • Message Broker (5)
        • Streaming (2)
        • 기능 개발 (5)
      • 💻 Server (6)
        • Linux (6)
      • ❌ Error Handling (11)
      • 📦 Database (62)
        • SQL (31)
        • NoSQL (2)
        • JPQL (9)
        • QueryDSL (12)
        • Basic (4)
        • Firebase (4)
      • ⚙️ Ops (57)
        • CS (6)
        • AWS (9)
        • Docker (8)
        • Kubernetes (13)
        • MSA (1)
        • CI & CD (20)
      • 📚 Data Architect (48)
        • Data Structure (10)
        • Algorithm (8)
        • Programmers (17)
        • BaekJoon (5)
        • CodeUp (4)
        • Design Pattern (4)
        • AI (0)
      • ⚒️ Management & Tool (8)
        • Git (7)
        • IntelliJ (1)
      • 📄 Document (10)
        • Project 설계 (6)
        • Server Migration (3)
      • 📄 책읽기 (2)
        • 시작하세요! 도커 & 쿠버네티스 (2)
      • 🎮 Game (4)
        • Stardew Vally (1)
        • Path of Exile (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      React #Markdown
      Lock #Thread #Concurrency
      GStreamer #Pipeline
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    신건우
    Kubernetes DaemonSet
    상단으로

    티스토리툴바