🐳 Container/K8S

[K8s] 쿠버네티스(Kubernetes) 컨트롤러 (2)

heywantodo 2023. 3. 28. 17:34
728x90
반응형

쿠버네티스 (Kubernetes) 컨트롤러 (2)

 

DaemonSet

DaemonSet

  • 전체 노드에서 Pod가 한 개씩 실행되도록 보장
  • log 수집기, 모니터링 에이전트와 같은 프로그램 실행 시 적용
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: ds-nginx

spec:
  selector:
    matchLabels:
      app: web

  template:
    metadata:
      name: nginx-pod
      labels:
        app: web

    spec:
      containers:
      - image: nginx:1.14
        name: nginx

 

StatefulSet

StatefulSet

  • Pod의 상태를 유지해주는 컨트롤러
  • 애플리케이션의 상태를 저장하고 관리 ==> 각 Pod에 대한 고정 ID를 유지 
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: sf-nginx

spec:
  replicas: 3
  serviceName: sf-svc
  selector:
    matchLabels:
      app: web

  template:
    metadata:
      name: nginx-pod
      labels:
        app: web

    spec:
      containers:
      - image: nginx:1.14
        name: nginx

 

Job

Job

  • Pod를 Running 중인 상태로 유지
  • Batch 처리에 적합한 컨트롤러로 Pod의 성공적인 완료를 보장
  • Batch 처리하는 Pod는 작업이 완료되면 종료
  • 작업이 완료되는 시점이 중요한 서비스에 유용함

 

Option

 

✔ Restart Policy

  • OnFailure : 비정상 종료 시 원래 실행 중이던 노드에서 컨테이너 재시작
  • Never :  비정상 종료 시 재 시작을 막은 후 새로운 Pod를 실행

✔ Parallel Jobs

  • Completions: Job 오브젝트로 실행 할 Pod 수
  • parallelism: Job에서 여러 개의 Pod를 동시 실행

✔ Active Deadline Second

  • 지정된 시간 안에 Job 애플리케이션을 동작시키고 종료하려면 필드에 시간을 설정
apiVersion: batch/v1
kind: Job
metadata:
  name: job-example
spec:
  template:
    spec:
      containers:
      - name: centos-container
        image: centos:7
        command: ["bash"]
        args:
        - "-c"
        - "echo 'Hello World'; sleep 5; echo 'Bye'"
      restartPolicy: Never

 

 

CronJob

CronJob

  • Job 오브젝트에 Linx Cronjob의 스케줄링 기능을 추가
apiVersion: batch/v1
kind: CronJob
metadata:
  name: cron-job-example
spec:
  schedule: "* * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: centos-container
            image: centos:7
            command: ["bash"]
            args:
            - "-c"
            - "echo 'Hello World'; sleep 5; echo 'Bye'"
          restartPolicy: Never

 

 

 

728x90
반응형