BACKEND(107)
-
Kubernetes, 제대로 이해하기
Kubernetes Deep Dive 중, 시리즈 연재 중입니다. 모든 게시글은 이곳에서 확인할 수 있습니다. 📌 Kubernetes Series K8s Architecture, 제대로 이해하기 Kubernetes Architecture, 제대로 이해하기 - Control Plane Kubernetes Architecture, 제대로 이해하기 - Worker Node Kubernetes Deployment, 제대로 이해하기 Kubernetes Taints & Tolerations, 제대로 이해하기 Kubernetes Affinity, 제대로 이해하기 Kubernetes Scheduler, 제대로 이해하기 Kubernetes Resource & Limit, 제대로 이해하기 Kubernetes DaemonS..
2024.04.16 -
Kubernetes ConfigMap & Secret, 제대로 이해하기
본 포스팅에서는 Kubernetes의 환경변수를 구성하는 방법인 ConfigMap & Secret 의 개념을 이해하고 적용할 수 있도록 하는 목표를 가집니다. 🔗 Kubernetes Series 모든 Kubernetes 시리즈를 확인하시려면 위를 참고해 주세요. 쿠버네티스를 사용하면서, 환경에 따라 다르거나 자주 변경되는 설정 옵션들을, 실행되는 애플리케이션 코드와 분리시키고 싶을 때가 생깁니다. 환경 변수를 정의하면서 이를 해결할 수 있는데요. 본 포스팅에서는 쿠버네티스에서 환경변수를 설정할 수 있는 총 세가지의 방법을 소개해드리고자 합니다. Environment Variables 🔗 Official: Configuration Container Runtime 중 대표적인 Docker에서 환경변수를 입력..
2024.04.16 -
Kubernetes RollingUpdate & Rollbacks, 제대로 이해하기
본 포스팅에서는 Kubernetes의 RollingUpdate의 개념을 이해하는 목표를 가집니다. 🔗 Kubernetes Series 모든 Kubernetes 시리즈를 확인하시려면 위를 참고해 주세요. 지난 포스팅에서 Deployment에 대해 알아보았습니다. 다시 짚어보자면, Deployment는 이름 그대로, 쿠버네티스에서 배포를 위한 객체입니다. 기능적으로는, Pod와 ReplicaSet를 배포를 관리합니다. 이번 포스팅에서는 배포 이후의 업데이트 과정을 다뤄보겠습니다. 앱 버전 1을 배포한 상태에서 버전 2로 업데이트할 때를 생각해보겠습니다. 5개의 Pod가 떠 있는 상태에서 해당 Pod 를 어떻게 교체해야 할까요?또, 교체되는 과정이 어떻게 될지 살펴보도록 하겠습니다. Rollout Deploy..
2024.04.07 -
Kubernetes DaemonSet, 제대로 이해하기
본 포스팅에서는 Kubernetes의 DaemonSet의 개념을 이해하는 목표를 가집니다. 🔗 Kubernetes Series 모든 Kubernetes 시리즈를 확인하시려면 위를 참고해 주세요. DaemonSets DaemonSet은 일부 혹은 모든 노드에 동일한 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가 특정 노드에 배치되는 이유를 알고 싶거나, 사용자 정의 스케줄러를 직접 구현할 계획이라면, 해당 포스팅에서 이해해보도록 하겠습니다. Scheduling Kubernetes에서 스케줄링은 Kublet이 Pods를 실행할 수 있도록 Nods와 매칭시키는 것을 의미합니다. Scheduler 스케줄러는 새로 생성된 Pod 중, 아직 노드에 할당되지 않은 Pod들을 찾아내고, 해당 Pod가 실행될 최적의 Node를 찾는 역할을 합니다. kube-scheduler 🔗 kubernetes.io - Schedulin..
2024.03.31