kubernetes - workloads

우야·2021년 5월 26일
0

워크로드

  • 쿠버네티스 클러스터가 있다면, 각 Node들에서 어플리케이션이 실행될텐데...

  • 그럼 어플리케이션은 어떻게 실행되는걸까?

    • 단순하게 표현해서, Pod를 생성하면 어플리케이션이 동작시킬수 있다.
  • 그럼 Pod에서 어떻게 동작하는건가?

    • Pod안에 실행되는 Container가 어플리케이션의 구현체인것이다.
    • Container는 단순히 Docker Container로 생각하면된다.
  • 그럼 만약에 Node가 죽었을때, Pod가 죽었을때, 사용자가 하나하나 다시 생성해줘야할까?

    • 이런 상황이 생길때, Pod를 직접관리할 필요가 없도록 만들었다.
    • 이때 사용되는것이 Workloads Resource이다.

쿠버네티스가 제공하는 워크로드

  • Deployment, ReplicaSet(레거시 리플리케이션컨트롤러)

    • Stateless Application pod를 정의
    • 모든 Pod를 필요시 교체, 상호 교체하는 일반적은 workload
  • StatefulSet

    • 어떻게든 스테이트(state)를 추적하는 하나 이상의 pod를 정의
    • StatefulSet 의 Pods 에서 동작 중인 코드는 동일한 StatefulSet 의 다른 Pods 로 데이터를 복제할 수 있음
    • 예를 들면, 워크로드가 데이터를 지속적으로 기록하는 경우, 사용자는 Pod 와 PersistentVolume을 연계하는 StatefulSet을 실행
    • 예) Elasticsearch
  • DaemonSet

    • 노드-로컬 기능(node-local facilities)을 제공하는 Pods를 정의
    • 컨트롤 플레인은 해당 신규 노드에 DaemonSet 을 위한 Pod 를 스케줄링함
    • 예) kube-proxy, fluentd ...
  • Job, CronJob

profile
Fullstack developer

0개의 댓글