[Python] 쿠버네티스(K8S)
쿠버네티스
전통적인 배포 시대
하나의 물리 서버에서 서비스하는 모든 애플리케이션이 구동되었기에, 각 애플리케이션의 리소스의 한계를 정의할 방법이 없었음.
즉, 8코어 물리 서버에서 8개의 서비스가 구동될 경우, 한개의 서비스가 8코어의 리소스를 모두 잡아둔채 사용할 수도 있었다는 것.
이는 당연히 확장 가능성과 큰 조직에서의 사용성이 많이 떨어졌었음.
가상화된 배포 시대
위의 해결책으로 도입된 방법.
하나의 물리 서버에서 가상 시스템을 실행할 수 있게 VM을 통해 애플리케이션을 격리하고, 각 VM 에는 리소스의 분배를 통해 효율성과 확장성을 확보할 수 있음.
즉, 8코어 물리서버에 VM 을 사용한 가상 공간 2개를 만들고 각각 4코어를 할당한다면, 일정수준의 보안성을 확보한 완전히 격리된 공간이 생기게 된다는 것.
컨테이너 개발 시대
VM 과 같이 완전히 분리된 공간을 사용하는것이 아닌, OS 를 공유하되, 리소스는 분리한, 즉, 보다 낮은 수준의 분리성을 활용한 환경을 사용한다.
쿠버네티스 클러스터
Compute machines 을 노드라고 생각하면 된다.
작동중인 쿠버네티스 배포를 클러스터라고 하며, 이는 컨테이너를 실행하는 호스트 그룹이다.
쿠버네티스 클러스터는 ‘컨트롤 플레인’ 과 ‘노드 (컴퓨팅 머신)’ 두 개의 부분으로 시각화가 가능하다.
컨트롤 플레인
어느 애플리케이션을 실행하고 애플리케이션이 어느 컨테이너 이미지를 사용할지와 같이 클러스터를 원하는 상태로 유지 관리하는 시스템이다.
이는 마스터 노드에서 실행된다.
즉, 각 노드를 관리하는 관리자이자, 파드를 실행하는 데 필요한 서비스를 포함하는 부분이다.
노드
노드는 애플리케이션이 실제로 실행되는 물리적, 또는 가상머신 공간이며, 각 노드는 컨테이너로 이루어진 ‘파드’ 를 실행한다.
EKS (Elastic Kubernetes Service)
1
↑ 문서 참조


