쿠버네티스 공부 6

00_8_3·2021년 5월 7일
0

쿠버네티스 공부

목록 보기
7/11

DaemonSet

노드 당 Pod가 한 개씩 실행되도록 보장
로그 수입기, 모니터링 에이전트와 같은 프로그램 샐행 시 적용

  • ReplicaSet, Deployment와 비슷하게 작성, spec의 replicas만 제거해서 작성

StatefullSet

Pod의 이름을 보장

특정 pod 개수의 이름만 유지시켜주는거지 어떤 노드로 작동하는지는 보장 X

예) 노드1, 노드2, 노드3에 각각 nginx-1, nginx-2, nginx-3 이렇게 있고
nginx-2를 삭제하면 자동으로 nginx-2 이름으로 다시 생성되어도 같은 노드에 pod가 생성되지는 않음

Job

Pod의 정상적인 종료를 관리
batch 처리할때 사용

완료된 작업을 지우지 않고 보존한다.
비정상 종료가 되면 새로운 pod 생성

restartPolicy: OnFailure // Pod가 아닌 컨테이너를 재시작
backoffLimit: 3 // 3번을 모두 실패하면 Pod가 삭제된다.

restartPolicy: Never // 컨테이너가 아닌 Pod를 다시 실행한다.

레플리카스 필드가 없다
대신 비슷한 completions
Job이 완료되면 completions 수 만큼 Pod 실행
parallelism 사용시 Pod 동시 실행 가능.

  • parallelism: 2 : 2개씩 실행 후 완료되면 또 2개 동시 실행

activeDeadlineSeconds: 5 : 5초안에 안끝나면 강제 종료 시킨다.

CronJob

Job 스케쥴링 예약 사용 지원
Job의 부모, Job을 제어, 데이터백업, 이메일 보내기, 테스크 정리에 사용
스케쥴링 0 3 1 *"
분 시 일 월 날짜

  • ex) : 주중(1-5), 주말(0,6)

완료되어있는 Job이 특정 시간에 반복실행하게 해준다.

apiVersion: batch/v1beta1
kind: CronJob
metadata:
	name: cronjob-definition
spec:
	schedule: "0 3 1 * *"             //cronJob 옵션
    startingDeadlineSeconds: 300	//cronJob 옵션 , 해당 Job을 300초안에 실행시키지 못하면 종료시킨다
    successfullJobsHistoryLimit: 3 
    // cronJob 옵션, 디폴트 3, 컨테이너 3개 이상 넘어가지 않게 설정, 
    //마지막 컨테이너가 완성되면 가장 오래된 완성된 컨테이너를 삭제
    concurrencyPolicy: Forbid(or Allow)	//cronJob 옵션
    jobTemplate:
    	spec:
        	template:	//Job 템플릿을 그대로 넣으면된다.
            	spec:
                	containers:
                    - name: hello
                      image: budybox
                      args:
                      - /bin/sh
                      - -c
                      - data; echo Hello
                    restartPolicy: Never

컨트롤러들 정리

디플로이먼트 - 레플리카Set의 롤링 관리해주는 부모?

  • 롤링 업데이트 : kubectl set image deployment app-deploy app=nginx:1.15 --record
    컨테이너이름=이미지이름:버전
    • annotaions 옵션 : yaml 파일로 롤링 업데이트
      kubectl apply -f deployment-exam2.yaml
  • 롤링 내역 : kubectl rollout history deployment app-deploy
    • --record 옵션을 사용하면 history 내역이 쌓여서 해당 내역으로 롤링 업데이트 가능
  • 롤링 정지와 재시작 : kubectl rollout pause(or resume) deployment app-deploy
  • 롤백 : kubectl rollout undo deployment app-deploy

레플리케이션 컨트롤러/레플리카셋

  • 실행할 pod의 개수를 보장 (동일)
  • 다른 점 : 레플리케이션 컨트롤러보다 풍부한 Selector
    • matchLabelsmatchExpressions옵션
    • In, NotIn, Exists, DoesNotExist

데몬셋
스테이풀 셋

크론잡

0개의 댓글

관련 채용 정보