-
k8s Controller 기본 정리Computer Science/k8s 2023. 2. 12. 23:35
Controller를 삭제한다면 관련 pod들도 삭제됨으로 controller 만 삭제하고 싶다면 --cascade=false 옵션을 넣어서 삭제하면 된다.
Replication Controller -> ReplicaSet
Template - 띄울 pod의 정보가 담긴 것. pod를 selector가 관리하는데 pod가 죽었을 시 해당 template로 다시 띄운다.
Replicas - 띄울 Pod의 개수.
Selector(ReplicaSet 부터 추가됨) - matchLabels 는 해당 label만 선택하지만 matchExpressions는 key value값으로 operator를 통해 관리할 수 있다. operator는 크게 4가지가 있는데 Exists, DoesNotExist, In, NotIn이 존재한다. selector의 내용은 templete의 내용을 포함해야 된다.
Deployment
Recreate - 기존을 삭제한 후 새로운 것을 만들어준다. (ReplicaSet을 이용하여 기존 Replicas 를 0으로 만들고 새로운 template에 Replicas를 설정한 ReplicaSet을 생성한다.)
Rolling Update - 기존을 1개 삭제후 새로운 것 1개를 만들어주는 것을 전부 진행될 때 까지 한다. (기존 Replicas를 1개씩 줄이고 새로운 Replicas를 1개씩 늘린다.)
Blue/Green - Deployment를 이용하는 방식은 아니다. 새로운 Controller 및 pod들을 띄우고 기존과 연결되어 있는 service의 label을 새로운 것으로 바꾸어준뒤 이상이 없다면 기존을 삭제하는 방식이다.
Canary - 새로운 pod를 기존 label과 동일하게 하여 띄워서 일정 트래픽에 대해 test를 하거나 service 앞단에 ingress controller를 두어 특정 Url들로 들어오는 것만 새로운 pod로 들어가도록 하는 방식.
DaemonSet
각 노드별로 1개씩 존재해야하는 Pod를 띄운다. ex) Prometheus, fluentd, GlusterFS
특정 node만 생성이 되게 할 수 있다. (nodeSelector를 이용하여 os:centos 인 경우 등)
Job
한번 실행되고 나서 삭제가 되는 pod. 다만 error로 인해 삭제가 될 경우 다른 node에 바로 띄워준다.
completions로 띄울 job의 개수를 결정할 수 있고 해당 job을 순차적으로 띄워준다.
parallelism은 순차적으로 띄우는 Pod를 한번에 몇개식 띄울지 결정한다.
activeDeadlineSeconds로 job이 몇 초 동안 실행을 해도 종료가 안될 시 종료하도록 할 수 있다.CronJob
cronJob은 해당 job을 시간마다 띄워줄 수 있다. ex) DB Backup, Checking
concurencyPolicy로 cronjob의 성격을 정해줄 수 있다.
Allow - 이전 job의 종료 여부에 상관없이 지속적으로 시간마다 만들어준다.
Forbid - 이전 job이 종료가 되어야 시간마다 다음 작업을 만들어준다.
Replace - 이전 job이 종료가 안되었다면 종료후 새로운 작업을 만들어준다.
'Computer Science > k8s' 카테고리의 다른 글
k8s service (0) 2023.03.04 k8s deployment (0) 2023.03.04 aws eks worker node 생성 (0) 2023.03.04 aws eks kubectl 연동 과정. (0) 2023.03.02 k8s Object 기본 간략 정리 (0) 2023.02.12