기본적인 kubernetes resource, option 등을 설명한 블로그입니다. 추가적인 기능을 보고싶으시면 docs를 참고바랍니다.
https://kubernetes.io/docs/home/
- StatefulSet - pod의 상태(pod 이름, pod의 볼륨)를 유지해주는 controller
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: sf-nginx
spec:
replicas: 3
serviceName: sf-nginx-service
# podManagementPolicy: OrderedReady # OrderedReady가 default, 0번, 1번을 순차적으로 ready
podManagementPolicy: Parallel # 0번, 1번 ... 동시에 실행
...
- sf-nginx-0, sf-nginx-1 ... pod이름이 이렇게 정해지고 scale을 조정하면 숫자에 따라 순차적으로 제거 및 생성된다.
- kubectl scale statefulset [statefulset name] --replicas=[num]
- kubectl edit statefulsets, kubectl rollout undo statefulesets 으로 수정하면 rolling update, rolling back 가능.
- kubernetes는 pod를 running 중인 상태를 유지시키려는 특징이 있음. -> kubectl run testpod --image:centos:7 --command sleep 5 를 통해 5초동안 멈추고 다시 restart 되는 pod를 생성.
- 따라서 job contoller가 정상적으로 작업을 완료한 pod에 대해서는 종료하도록 함. 비정상종료시 다시 실행.
- 작업이 완료되면 Ready 상태가 0/1로 바뀜. pod가 삭제가 되는건 아님.
apiVersion: batch/v1
kind: Job
metadata:
name: centos
spec:
# completions: 5 # 순차적으로 정상종료 된 후 실행하는 pod개수
# paralleism: 2 # 동시에 실행하려는 pod 개수 -> 2개 동시 실행 후, 완료 후 다시 2개 동시에 실행.
# activeDeadlineSeconds: 15 # 15초안에 안끝나면 terminating
template:
spec:
containers:
- name: centos-container
image:contos:7
command: ["bash"]
args:
- "-c"
- "echo 'Hello World'; sleep 50; echo 'Bye'"
restartPolicy: Never # 비정상 종료 시 pod를 restart 시킨다. -> pod가 계속 생성된다.
# restartPolicy: OnFailure # container만 backoffLimit만큼 restart -> restart가 증가
backoffLimit: 3 # default 6번
- kubectl delete jobs.batch centos-job -> pod의 로그기록, 데이터 등을 보존해주기 위해 남기고 job을 지우기 위함.
- CronJob contoller -> 원하는 시간에 job 실행 예약.
- "[Miniutes(0~59)] [Hours(0~23)] [Day(1~31)] [Month(1~12)] [Week(0~6, 일요일:0)]" -> *->다 포함(매주, 매월...), 주중 1-5, 주말 0,6, 5분마다 */5
kind: CronJob
...
spec:
schedule: "0 3 1 * *"
startingDeadlineSeconds: 300 # 300초 동안까지만 job 실행.
concurrencyPolicy: Forbid # default는 Allow, 한번에 여러개 job이 실행 허용, forbid는 금지.
successfulJobHistoryLimit: 3 # 계속 job pod가 남겨지는데 그 개수를 제한.
jobTemplate:
... # job과 동일
'kubernetes, helm, rancher' 카테고리의 다른 글
kubernetes services (0) | 2021.11.27 |
---|---|
kubernetes HA(Highly Available), multi master node (0) | 2021.11.27 |
kubernetes ReplicaSet, Deployment, Daemon set (0) | 2021.11.24 |
kubernetes pod resources, env, ReplicationController (0) | 2021.11.23 |
kubernetes pod, static pod, self-healing, container type (0) | 2021.11.22 |