hmk run dev
쿠버네티스 아키텍처 마스터 & 워커 노드 관리방식 본문
쿠버네티스 아키텍처: 마스터 노드와 워커 노드 관리 방식
쿠버네티스(Kubernetes)는 애플리케이션을 자동으로 관리하고 조정하는 시스템입니다. 큰 기업에서 수백, 수천 대의 서버를 관리할 때, 사람 손으로 하나하나 모든 것을 조정하는 것은 매우 어려운 일이죠. 그래서 쿠버네티스가 등장하여, 여러 서버를 효율적으로 관리하고 애플리케이션을 원활하게 실행할 수 있도록 도와줍니다.
여기서 중요한 역할을 하는 두 가지가 마스터 노드(Master Node)와 워커 노드(Worker Node)입니다. 이를 쉽게 이해할 수 있도록, 마치 회사의 부서와 비슷한 구조로 설명해 보겠습니다.
마스터 노드(Master Node): 회사의 관리자
마스터 노드는 쿠버네티스의 중앙 관리 시스템입니다. 마치 회사에서 모든 일을 결정하는 관리자와 같은 역할을 합니다. 회사의 모든 부서에서 일어나는 일을 감독하고, 각 부서에 적절한 일을 할당하는 사람이죠.
마스터 노드의 역할
- API Server (kube-apiserver): 마스터 노드는 회사의 관리자가 다양한 부서와 소통하는 창구와 같습니다. 예를 들어, 회사의 직원들이 요청을 하면, 관리자(API Server)가 이를 받아 적절히 처리합니다.
- Scheduler (kube-scheduler): 마스터 노드의 스케줄러는 각 부서에 일을 할당하는 역할을 합니다. 예를 들어, 오늘 중요한 프로젝트가 있다면, "이 일을 누구에게 맡길지?"를 결정하는 사람이 바로 스케줄러입니다. 마스터 노드는 어떤 일을 할지, 그 일을 누가 할지 결정합니다.
- Controller Manager (kube-controller-manager): 마스터 노드는 회사의 상태를 모니터링하고, 필요한 변화를 일으킵니다. 예를 들어, 부서에 사람이 부족하면 이를 채워주는 역할을 합니다.
- etcd: 마스터 노드는 회사의 중요한 기록을 보관합니다. 모든 회의록, 회의에서 나온 결정을 보관하는 서류철 같은 역할을 합니다. 그래서 언제든지 이 정보를 참고할 수 있게 되죠.
즉, 마스터 노드는 회사에서 모든 일의 방향을 결정하고, 각 부서(워커 노드)가 해야 할 일을 배치하는 역할을 합니다.
워커 노드(Worker Node): 회사의 실무자들
워커 노드는 회사의 실제 업무를 수행하는 부서들입니다. 마스터 노드에서 결정된 일들을 실제로 실행하는 곳이 바로 워커 노드죠. 예를 들어, 마케팅 부서나 개발 부서처럼 직접 일을 하는 실무자들입니다.
워커 노드의 역할
- Kubelet: 워커 노드는 마치 부서의 팀장 같은 존재입니다. 팀장은 마스터 노드에서 주어진 업무를 각 팀원에게 분배하고, 업무가 잘 진행되는지 점검합니다.
- Kube Proxy: 부서 내에서 협업을 원활하게 해주는 시스템입니다. 예를 들어, 마케팅 부서와 개발 부서가 함께 일을 할 때, 각 부서 간에 어떻게 일을 나누고 조율할지 책임지는 역할입니다.
- 컨테이너 런타임: 워커 노드는 실제 업무를 처리하는 장비처럼, 업무를 실제로 처리하는 시스템입니다. 예를 들어, 컴퓨터나 전화, 소프트웨어 등이 이에 해당합니다. 이 시스템이 실제로 실행되는 곳이 바로 워커 노드입니다.
즉, 워커 노드는 마스터 노드가 주는 지시를 받고, 실제로 애플리케이션을 실행하고 결과를 만들어내는 작업자들입니다.
마스터 노드와 워커 노드의 협력
이제 마스터 노드와 워커 노드가 어떻게 협력하는지 예를 들어 보겠습니다. 상상해 보세요, 마스터 노드는 회사의 관리자이고, 워커 노드는 각 부서의 실무자들입니다.
- 파드 배치: 마스터 노드(관리자)가 새로운 업무를 할당합니다. 예를 들어, "마케팅 부서에 광고 캠페인을 맡겨라"고 지시하면, 마케팅 부서(워커 노드)는 이를 실행합니다.
- 상태 관리: 마스터 노드는 각 부서가 제대로 일을 하고 있는지 모니터링합니다. 예를 들어, "마케팅 부서에서 광고 캠페인을 시작했다. 그런데 문제가 발생했을 때 어떻게 대처할지?"를 관리합니다. 만약 부서에서 일이 잘 안 되면, 마스터 노드는 수정할 방법을 제시하고 이를 해결하려 합니다.
- 실행과 조정: 마스터 노드는 일을 계획하고, 워커 노드는 그 계획을 실행합니다. 만약 마케팅 부서에 사람이 부족하면, 마스터 노드는 그 문제를 해결할 방법을 제시합니다. 각 부서는 마스터 노드의 지시에 맞춰서 업무를 수행합니다.
고가용성(High Availability): 두 가지가 함께 있어야 안정적
쿠버네티스에서는 마스터 노드와 워커 노드가 함께 있을 때 안정적인 시스템을 운영할 수 있습니다.
- 마스터 노드가 하나만 있으면 문제가 생길 수 있기 때문에, 여러 대의 마스터 노드를 두어 **고가용성(HA)**을 보장할 수 있습니다. 만약 하나의 마스터 노드가 실패해도, 다른 마스터 노드가 계속 클러스터를 관리할 수 있습니다.
- 워커 노드도 여러 대로 분산시켜서, 한 대의 워커 노드가 문제가 생기면 다른 워커 노드가 대신 업무를 처리할 수 있도록 합니다. 이렇게 여러 대의 노드를 통해 부하 분산을 할 수 있습니다.
결론
쿠버네티스에서 마스터 노드는 회사 관리자처럼 클러스터의 상태를 관리하고 조정하며, 워커 노드는 실무자처럼 실제 업무를 실행하는 역할을 합니다. 이 두 시스템이 협력하여 애플리케이션을 원활하게 실행하고 클러스터를 효율적으로 관리합니다.
이해가 되셨나요? 쿠버네티스는 큰 회사의 효율적인 관리를 돕는 시스템처럼, 여러 대의 서버와 애플리케이션을 잘 관리하고 조정하는 데 필요한 핵심 요소들이 바로 마스터 노드와 워커 노드입니다.
'CI&CD' 카테고리의 다른 글
쿠버네티스 pod (0) | 2025.02.02 |
---|---|
컨테이너와 오케스트레이션 쉽게 이해하기 (0) | 2025.02.02 |
젠킨스를 이용한 빌드 (0) | 2022.01.04 |