해결된 질문
작성
·
231
0
안녕하세요,
MSA패턴1- 인프라 섹션의 컨테이너 오케스트레이션 챕터에서 몇가지 질문이 있습니다.
먼저, node 와 pod 의 관계가 헷갈립니다.
주신 자료의 k8s 아키텍처 이미지를 보면 각 worker node 는 여러개의 pod 를 가질 수 있는 것 같은데 보통 한개의 node 에 여러개의 pod 를 설정하는 경우가 흔한가요?
Scale out 을 진행 할 때 실제로 Scale out 되는 주체는 worker node 가 맞는건가요? (worker node 에 하나 이상의 Pod 가 존재 한다는 가정하에)
보통 실무에서는 pod 수를 늘려주세요 라는 요청을 많이 들어봤는데요, 결국 node 를 늘리므로써 pod 가 늘려지는게 맞는건지 아니면 특정 node 안에서 pod 수 만 늘리는 건지 궁금합니다.
보통 이런 요청은 Scale out 의 목적으로 pod 수를 늘려달라는 요청인데, 특정 node 안에서 pod 수만 늘어난다면 이게 Scale out 맞는건가 라는 생각이 들어서요.
그 다음은 worker node 에 관한 질문입니다.
master node 는 연결된 worker node 들을 API 를 통해 관리하는 목적으로만 쓰이는것이 맞을까요?
인그레스는 master node 에서 관리하는 설정이 맞는지 궁금합니다.
답변 1
1
우선 work node는 기존의 쉽게 생각하면 베어메탈 서버라고 생각하면 됩니다. 따라서 쿠버네티스에서 클러스터를 노드 3개로 구성한다고 하면 베어메탈 3대가 논리적으로 하나로 묶인다고 생각하면 되고 파드는 그 위에 올라가는 쿠버네티스가 관리하는 논리적인 컨테이너 관리 단위입니다. 따라서 워커노드에 파드를 몇개를 설정하는 가 하는 것은 사용자가 결정하는 것이 아니라 쿠버네티스가 노드간의 빈 공간을 효율적으로 잘 고려해서 결정해 줍니다.(이것이 컨테이너 오케스트레이션를 사용하는 이유입니다.) 사용자는 그냥 필요한 파드의 단위를 선언하면 알아서 쿠버네티스가 각 노드에 배분해 주는 거죠. 아마도 제가 처음 그린 그림에서 각 노드에 파드를 하나씩만 그려서 헷갈리신것 같습니다.
따라서 쿠버네티스에서 스케일 아웃 설정하는 단위는 파드입니다. 언급 한 것처럼 특정 노드에서 파드가 들어나는 것이 아니라 여러개의 노드를 묶은 클러스터에서 파드가 늘어나는 것이므로 성능 향상을 효과가 있습니다.
24.5 분 정도에 그려있는 쿠버네티스 아키텍처가 있는데 master node는 여러개의 클러스터를 구성하는 워커노드를 관리하는 제어판 역할을 합니다. 즉 사용자가 kubctl등으로 명령할 때 이를 해석 제어하는 것은 마스터 노드라 보면 됩니다. 쿠버네티스의 브레인 역할을 하므로 애플리케이션 개발자 입장에서는 크게 신경 안써도 되는 부분입니다.
아마도 이부분도 제가 처음에 그린 그림이 파드 위에 인그레스가 있어 마스터노드에 인그레스가 관리된다고 생각하신 듯 합니다. 그런 의미는 아니었고 매우 논리적인 의미로 그린 그림입니다. 인그레스 컨트롤러를 통해 여러개의 파드를 묶은 서비스 오브젝트가 호출된다는 것을 묘사한 그림입니다.
네. node 3대를 활용하여 쿠버네티스 클러스터를 구성하고 pod의 스케일 아웃을 설정하면(예를 들면 5개) 노드3대의 한계 범위 내에서 파드 가 계속 5개를 유지하게 됩니다. 줄일수도 있고요(스케일 인)
답변 감사합니다.
그렇다면 node 의 개수와 node 의 사양을 아래와 같이 설정하였을 때
(ex. node 3대 , 각 node 의 사양은 cpu '3' , memory '3Gi' )
위와 같은 사양의 node 3대를 활용하여 pod 수 를 적절하게 늘리고 줄일수 있는 것이고, 트래픽이 각 pod 들에게 분산되니 스케일 아웃이 맞다. 라고 이해해도 될까요?