티스토리 뷰

1.DaemonSet

  • DaemonSet은 노드의 자원상태와는 상관없이, 모든 노드에 pod가 하나씩 생김(ReplicaSet은 node의 자원상태애 따라 pod가 차등적으로 생김)
  • 이렇게 각각의 노드에 하나씩 설치해서 사용해하야하는 서비스 목록
    1. Prometheus: 각 노드들의 성능 모니터링
    2. fluentd: 로그 수집
    3. GlusterFS: 노드들을 Storage로 사용해서 네트워크 파일시스템을 구축 가능
  • selector와 template이 있어서 모든 노드에서 pod를 생성. 만약 노드들의 os종류가 달랐을때 ubuntu에서는 pod을 생성하고 싶지 않다면, template의 nodeSelector에 os:centos로 설정해주면 됨
  • template에 hostport를 설정을 하면 서비스에서의 externalTrafficPolicy: Local 같은 용도로 사용할 수 있음

2.Job

  • 노드에는 (1)직접 pod생성, (2)ReplicaSet으로 pod생성, (3)Job으로 pod생성을 할 수 있는데, 모두 같은 pod들이지만 어떻게 만들어졌는지에 따라서 달라지는 부분이 있음
  • pod들이 node1에서 돌아가고 있는 상황에서 다운이 되면
    • (1)직접 만들어진 pod: 더 이상 사용 불가능
    • 컨트롤러로 만들어진 pod들(replicaSet, Job)은 장애가 발생되면 다른 노드에 재생성(recreate)되기 때문에 서비스가 계속 유지됨
    • (2)ReplicaSet으로 만들어진 pod: 다른 노드에서 restart됨(무슨 일이 있어도 서비스가 유지되어야 하는 목적)
    • (3)Job으로 만들어진 pod: 다른노드에서 종료(finish )—> 자원을 사용하지 않는 상태로 멈춰있음
  • template에는 특정 작업만하고 종료되는 일을 하는 pod들을 담음. selector는 직접 만들지 않아도 job이 알아서 만들어줌
  • 만약 completion:6을 주면 6개의 pod를 하나씩 순차적으로 실행시켜서 모두 작업이 끝나야 job도 종료가 됨
  • parallelism: 2를 주면 2개씩 pod가 생성되고
  • activeDeadlineSeconds:30을 주면 job이 30초 후에 기능이 정지됨. 실행되고 있는 모든 pod들은 정지됨. 아직 실행되고 있는 pod들도 실행이 안됨. 10초짜리 job을 만들었는데 30초가 되어도 작업이 안끝나면 뭔가 hang이 걸렸을 확률이 큰거고, 그런 경우 pod들을 삭제해서 자원을 release하고 더 이상 작업을 진행하지 않을 때 사용

3.CronJob

  • 이러한 job들을 주기적인 시간에 따라서 생성하는 역할
  • 대체로 job만 쓰지 않고 cronJob을 만들어서 특정시간에 반복적으로 실행할 목적으로 사용됨
    • 새벽마다 정기적인 데이터 백업
    • 주기적인 업데이트 확인
    • 예약메일이나 sms같은 메세지 발송
  • concurentPolicy
    • Allow
    • Forbid
    • Replace
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함