https://kubernetes.io/ko/docs/concepts/architecture/nodes/
쿠버네티스의 워크로드는 컨테이너를 파드내에 배치하고, 노드에서 실행함으로써 이뤄진다.
노드는 클러스터에 따라 가상머신일수도, 물리적 머신일 수도 있다. 뭐든간에 쿠버네티스의 worker-machine임. 각 노드는 컨트롤 플래인에 의해 관리되고, 파드를 실행하는데 필요한 서비스를 갖고 있다.
노드의 주요 컴포넌트는 kubelet, 컨테이너 런타임, kube-proxy이다.
API 서버에 노드를 추가하기 위해선 두 가지 주요한 방법이 있음.
뭐가 됐든간에 등록이후엔 컨트롤 플래인은 새 노드 오브젝트가 유효한지를 확인한다. 쿠버네티스는 내부적으로도 노드 오브젝트를 생성하는데, kubelet이 노드의 metadata.name
필드와 일치하는 API서버에 등록되어 있는지를 확인한다. 노드가 정상이면 파드를 실행하고, 그렇지 않으면 무시해버린다.
두 노드는 동시에 같은 이름을 가질 수 없다. 쿠버네티스는 같은 이름의 리소스가 동일한 객체라고 가정하기 때문임. 노드의 경우, 동일한 이름을 사용하는 인스턴스는 동일한 상태를 갖는다고 가정한다. 노드를 많이 교체하거나 업데이트 해야 하는 경우 기존 노드 오브젝트를 먼저 제거하고 업데이트 후 다시 추가하는걸 추천.
를 포함하고 있음. 노드의 상태를 보려면 kubectl
을 통해 확인 가능.