Taking baby-developer steps

[도커&쿠버네티스]쿠버네티스 - 마스터 노드와 워커노드, 초기 설치 소프트웨어, 컴포넌트 본문

CS 지식/서버 구축

[도커&쿠버네티스]쿠버네티스 - 마스터 노드와 워커노드, 초기 설치 소프트웨어, 컴포넌트

Surin Lee 2023. 11. 22. 23:38

 

쿠버네티스는 마스터 노드와 워커노드라는 두 가지 유형의 노드로 구성된다. 마스터 노드와 워커노드로 구성된 쿠버네티스 시스템을 클러스터라고 한다. 클러스터는 사람이 개입하지 않아도 마스터 노드에 설정된 내용에 따라 워커 노드를 관리하며 자율적으로 동작한다.

마스터 노드

 전체적인 제어를 담당한다. 마스터 노드에서는 컨테이너를 실행하지는 않는다. 워커 노드에서 실행되는 컨테이너를 관리한다. 마스터 노드의 초기 설정후 조정만 하면 관리자가 직접 워커 노드를 관리하지 않는다.

워커노드

 실제 서버에 해당한다. 컨테이너가 실제 동작하는 서버이다.

설치 프로그램

쿠버네티스를 사용하려면

1. 쿠버네티스 소프트웨어

2. CNI(Container Networking Interface, 가상 네트워크 드라이버)

3. etcd(마스터 노드에만 설치하는 데이터 베이스. 컨테이너 등의 상태 관리를 위해 사용한다)

4. 컨테이너 엔진(워커 노드에만 설치. ex>도커)

5.kubectl(마스터 노드를 설정하는 관리자의 로컬에 설치. 마스터 노드에 로그인해 초기 설정 진행 및 추후 조정을 할 수 있다)

를 설치해야한다.(1,2는 마스터노드와 워커노드 모두에 설치한다)

가상네트워크 드라이버?

 쿠버네티스는 오버레이 네트워크이므로 다른 물리적 컴퓨터를 같은 로컬 네트워크로 묶기 위해 사용한다. 대표적인 CNI 소프트웨어로는 플란넬, 칼리코, AWS VPN CNI등이 있다.

마스터 노드는 어떻게 워커노드를 관리 할까? -> 컨트롤 플레인

 마스터 노드는 컨트롤 플레인(제어판)을 통해 워커 노드를 관리한다.

컨트롤 플레인의 다섯가지 컴포넌트(부품)는 다음과 같다.

 

1. kube-apiserver : 외부와 통신하는 프로세스. kubectl로부터 명령을 전달받아 실행

2. kube-controller-manager :  컨트롤러를 통합 관리, 실행

3. kube-scheduler : 파드(Pod, 컨테이너와 동일어라고 생각해도 됨)를 워커 노드에 할당

4. cloud-controller-manager : 클라우드 서비스와 연동해 서비스를 생성

5. etcd : 클러스터 관련 정보 전반을 관리하는 데이터베이스

 

 쿠버네티스 소프트웨어에 1~4는 포함되어 있지만, 5는 따로 설치해야한다.

 

워커노드에서는, 쿠버네티스 소프트웨어에 포함된 kube-let과 kube-proxy가 동작해 컨트롤 플레인으로부터 받은 명령을 수신하고 동작한다.

1. kube-let : 마스터 노드의 kube-scheduler와 연동해 워커 노드에 컨테이너나 볼륨을 배치하고 실행. 실행 중인 파드의 상태를 정기적으로 모니터링하며 kube-scheduler에 통지

2. kube-proxy : 네트워크 통신의 라우팅 메커니즘

쿠버네티스의 배포판에 따라 kube-let이 소프트웨어에 포함 돼있지 않은 경우 워커 노드에 따로 설치해야 할 수도 있다.

 


참고문헌 : 그림과 실습으로 배우는 도커&쿠버네티스

Comments