-
[K8s] 쿠버네티스 3 개념이해 2CLOUD/K8s 2021. 2. 23. 17:32반응형
bcho.tistory.com/1257?category=731548보고 따라쓰기
고급 컨트롤러
RC, RS, Deployment는 웹 서버와 같은 일반적인 워크로드에 대해 Pod를 관리하기 위한 컨트롤러
실제 운영환경에서는 더 다양한 형태의 워크로드 모델이 존재하므로 k8s는 다양한 컨트롤러를 제공해 Pod의 운영을 다양한 시나리오에 맞게 지원
Daemon Set (DS)
- Pod가 각각의 노드에서 하나씩만 돌게 하는 형태로 Pod를 관리
- DS에 의해 관리되는 Pod는 모든 노드에 균등하게 하나씩만 배포됨. ( RC와 RS에 의해서는 일반적으로 비 균등적)
→ 서버의 모니터링이나 로그 수집 용도로 많이 쓰임
→ 특정장비, 노드들에만 Nvme SSD를 사용하거나 GPU를 사용할 경우 그 장비가 설치된 노드만을 모니터링하면 됨.
→ 특정 노드들에만 Pod가 배포되도록 설정이 가능함 - node selector이용
Job
- 배치나 한번 실행되고 끝나는 형태의 워크로드 모델을 지원하는 컨트롤러
- 원타임 파일 변환, 주기적 ETL 배치 작업 . 웹 서버처럼 계속 Pod가 떠있을 필요 없이 작업을 할 때만 Pod를 띄우면됨.
- Job에 의해 관리되는 Pod는 Job이 종료되면 Pod를 같이 종료→ Job정의시 컨테이너 스펙에 Job수행 커맨드도 같이 입력
apiVersion: batch/v1kind: Jobmetadata: name: pispec: template: spec: containers: - name: pi image: perl command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] restartPolicy: Never backoffLimit: 4
- Job컨트롤러에 의해 실행된 Pod는 이 command의 실행 결과에 따라 Job의 실패/성공 여부를 판단. (프로세스의 exit코드)
- Job이 끝나기 전 비정상적 종료?
- 다시시작 / 다시시작 X ( RC/RS에 의해 관리되는 Pod는 자동생성 될것이고 not managed Pod은 사라질것임)
- 다시시작은 resume이 아닌 restart(상태보장x 다시 처음부터 작업 시작) 이므로 데이터 겹치는 문제 없을 형태여야함.
- Job 설정
- completion 횟수 - 같은 작업을 순차 반복한다.
- parallelism 횟수 - 병렬로 처리.
Cron jobs
주기적으로 자동화해서 실행해주는 컨트롤러
시간에 따른 실행 조건, 이에 따라 Job컨트롤러 실행하여 정의된 Pod실행.
spec:
schedule: "*/1 * * * * "
statefulset
DB와같은 상태를 가지고 있는 Pod를 지원하기 위한 컨트롤러. 다음에 다시 설명
'CLOUD > K8s' 카테고리의 다른 글
[K8s] 쿠버네티스 4 아키텍쳐 (0) 2021.02.23 [K8s] 쿠버네티스 2 개념이해 1 (0) 2021.02.23 [K8s] 쿠버네티스 1 - 소개 (0) 2021.02.23