Kubernetes를 공부하자 (1) - Node란 무엇인가?
용어의 중요성
Kubernetes를 처음 공부하면 제일 어려운 것이 바로 용어 정리이다.
Kubernetes 자체 자원만으로도 굉장히 많은 이름이 나오는데, 자원도 아니면서 이름이 이상해서 볼때마다 헷갈리는 친구들이 종종 있다.
이런 헷갈리는 용어들 잘 메모하여 꽉 잘 붙들어매어 앞으로 더 많은 내용들이 나올때 어려움이 없도록 해야한다.
Node란 단어에 대해
가장 먼저 알아볼 용어는 바로 Node이다.
Kubernetes에서 쓰이는 Node의 뜻을 알아보기 전에, 왜 당신이 Node라는 용어를 돌아서면 까먹게 될 것인지 그 이유를 간략히 말하고 싶다.
그것은 바로 두구두구두구 (팀파니 롤)
컴퓨터 과학에서 Node라는 단어가 이미 너무 많은 의미를 가지고 있기 때문
Node는 식물 줄기의 마디를 뜻하는 말인데, 교점이나 중심점을 뜻하는 말이기도 하다.
제일 먼저 이 단어를 접하는 것은 데이터구조를 공부할 때인데, 트리구조에서 각 점들을 Node라고 한다. Root Node니 Leaf Node 등의 단어를 들어보았을 것이다.
그 다음으로 이 단어를 많이 보게 되는 것은 Node.js라는 자바스크립트 런타임때문일 것이다. 이는 트리의 node와도 큰 관련이 없다.
(혹시 잘 못 알고 있었나해서 우리 로보트 친구에게도 점검 받아보았다.)
그러나 node에는 의미가 하나 더 있는데, 네트워크 상에 정보를 보내는 장비 하나하나를 다 node라고도 부른다.
정리하자면
- 트리 구조의 점
- JS 런타임
- 네트워크에 연결된 장비
한 단어에 이런 뜻이 존재한다.
Kubernetes의 Node란 무엇인가?
Kubernetes에서 말하는 Node는 위 목록 중 세번째 뜻의 Node에 가장 가깝다.
Kubernetes 클러스터가 만들어지면 각 Node들이 네트워크로 연결되고, 자체 IP주소를 통해 통신을 하게 되기 때문에 붙은 이름이다.
그러나 Node를 이해하는 가장 쉬운 방법은 Node라는 단어를 Server와 동일하다고 생각하는 것이다.
즉 클러스터에 Node가 3대가 있다는 것은 서버 3대에 Kubernetes를 설치해서 클러스터로 만들었다는 것과 다르지 않다.
이 서버는 물리적인 서버 한 대일 수도 있지만 VM으로 생성한 가상 서버일 수도 있다.
시리즈가 진행되면서 minikube도 생성해볼텐데, minikube가 vm으로 만들어진 로컬 node로 kubernets를 띄우는 것이라고 이해하면 된다.