ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.