BACKEND/Docker & Kubernetes(21)
-
Kubernetes RollingUpdate & Rollbacks, 제대로 이해하기
본 포스팅에서는 Kubernetes의 RollingUpdate의 개념을 이해하는 목표를 가집니다. 🔗 Kubernetes Series모든 Kubernetes 시리즈를 확인하시려면 위를 참고해 주세요. 지난 포스팅에서 Deployment에 대해 알아보았습니다. 다시 짚어보자면, Deployment는 이름 그대로, 쿠버네티스에서 배포를 위한 객체입니다.기능적으로는, Pod와 ReplicaSet를 배포를 관리합니다. 이번 포스팅에서는 배포 이후의 업데이트 과정을 다뤄보겠습니다. 앱 버전 1을 배포한 상태에서 버전 2로 업데이트할 때를 생각해보겠습니다. 5개의 Pod가 떠 있는 상태에서 해당 Pod 를 어떻게 교체해야 할까요?또, 교체되는 과정이 어떻게 될지 살펴보도록 하겠습니다. RolloutD..
2024.04.07 -
Kubernetes DaemonSet, 제대로 이해하기
본 포스팅에서는 Kubernetes의 DaemonSet의 개념을 이해하는 목표를 가집니다. 🔗 Kubernetes Series모든 Kubernetes 시리즈를 확인하시려면 위를 참고해 주세요. DaemonSetsDaemonSet은 일부 혹은 모든 노드에 동일한 Pod (copy of a Pod) 가 하나씩 실행되도록 보장합니다. 클러스터에 새 노드가 추가될 때마다 Pod 복제본이 자동으로 해당 노드에 추가되고,노드가 제거되면 Pod는 Garbage Collection의 대상이 되어 자동으로 제거됩니다. 대부분의 일반적인 경우엔,ReplicaSet과 Deployment을 통해 여러 Worker Node에서 애플리케이션을 복제하면서,Cluster 내 다양한 노드에 다양한 포드를 배포할 ..
2024.04.01 -
Kubernetes Resources, 제대로 이해하기
본 포스팅에서는 Kubernetes의 Resources 를 제한하고 보장받을 양을 지정하는 방법을 익힙니다. 🔗 Kubernetes Series모든 Kubernetes 시리즈를 확인하시려면 위를 참고해 주세요. Resource Management for Pods and Containers 모든 Pod를 운영하려면 자원이 필요하며,모든 노드엔 사용 가능한 CPU와 메모리 리소스를 가지고 있습니다. 쿠버네티스 스케줄러는 Pod에 요구되는 리소스 양을 고려하여,노드에서 사용 가능한 리소스에 따라 Pod가 배치될 최적의 노드를 결정합니다. 이때, 노드에 배치할 Pod를 지정 시, 컨테이너에 필요한 각 리소스의 양을 선택적으로 지정할 수 있는데요.대표적인 리소스에는, CPU와 메모리(RAM) 등이 있..
2024.04.01 -
Kubernetes Scheduler, 제대로 이해하기
본 포스팅에서는 Kubernetes의 Scheduler의 개념을 이해하는 목표를 가집니다. 🔗 Kubernetes Series모든 Kubernetes 시리즈를 확인하시려면 위를 참고해 주세요. Pod가 특정 노드에 배치되는 이유를 알고 싶거나,사용자 정의 스케줄러를 직접 구현할 계획이라면,해당 포스팅에서 이해해보도록 하겠습니다. SchedulingKubernetes에서 스케줄링은 Kublet이 Pods를 실행할 수 있도록 Nods와 매칭시키는 것을 의미합니다. Scheduler스케줄러는 새로 생성된 Pod 중, 아직 노드에 할당되지 않은 Pod들을 찾아내고,해당 Pod가 실행될 최적의 Node를 찾는 역할을 합니다. kube-scheduler🔗 kubernetes.io - Scheduli..
2024.03.31 -
Kubernetes Affinity, 제대로 이해하기
본 포스팅에서는 Kubernetes의 Affinity의 개념을 이해하여 Taints & Tolerations와의 차이점을 구분할 수 있는 목표를 가집니다. 🔗 Kubernetes Series모든 Kubernetes 시리즈를 확인하시려면 위를 참고해 주세요. Assigning Pods to Nodes노드를 특정 애플리케이션 만을 실행하게 만들거나, 다른 서비스와 구분되는 그룹으로 만들고 싶을 때가 있습니다. Pod을 특정 Node에 배치되도록 하는 방식에는 Label & Selector, NodeSelector, Affinity 등이 있습니다. Node Affinity vs Taints & Tolerations두 기능의 차이가 궁금하신 분들은 이전 포스팅의 Node Affinity vs. Tai..
2024.03.25 -
Kubernetes Taints & Tolerations, 제대로 이해하기
본 포스팅에서는 Kubernetes의 Taint 와 Toleration의 개념을 이해하여 Affinity와의 차이점을 구분할 수 있는 목표를 가집니다. 🔗 Kubernetes Series모든 Kubernetes 시리즈를 확인하시려면 위를 참고해 주세요. Taints & Tolerations?Taints and tolerations work together to ensure that pods are not scheduled onto inappropriate nodes. Taint (테인트)와 Toleration(톨러레이션)는 Pod가 적절치 않은 노드에 스케줄링 되지 않는 것을 보장합니다.특정 Pod가 Node에 스케줄링 될 때, Node 배치에 제한을 걸 수 있는 용도로 사용될 수 있습니다...
2024.03.24