쿠버네티스란 무엇인가?
2023-05-18
쿠버네티스란 무엇인가?
쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다. 쿠버네티스는 선언적 구성과 자동화를 모두 용이하게 해준다.
쿠버네티스는 전통적인, 모든 것이 포함된 Platform as a Service(PaaS)가 아니다. 쿠버네티스는 하드웨어 수준보다는 컨테이너 수준에서 운영되기 때문에, PaaS가 일반적으로 제공하는 배포, 스케일링, 로드 밸런싱과 같은 기능을 제공하며, 사용자가 로깅, 모니터링 및 알림 솔루션을 통합할 수 있다. 하지만, 쿠버네티스는 모놀리식(monolithic)이 아니어서, 이런 기본 솔루션이 선택적이며 추가나 제거가 용이하다. 쿠버네티스는 개발자 플랫폼을 만드는 구성 요소를 제공하지만, 필요한 경우 사용자의 선택권과 유연성을 지켜준다.
이것은 일부 대표적인 Container Orchestration Platform 애플리케이션의 예시입니다. Container Orchestration Platform은 계속 발전하고 새로운 솔루션이 등장할 수 있으므로, 현재의 상태에 대한 최신 정보를 확인하는 것이 중요합니다.
- Kubernetes: 가장 널리 사용되는 컨테이너 오케스트레이션 플랫폼으로, 컨테이너화된 애플리케이션의 배포, 관리, 확장을 담당합니다.
- Docker Swarm: Docker 컨테이너 클러스터링과 오케스트레이션 플랫폼으로, Docker 컨테이너의 배포 및 관리를 위한 기능을 제공합니다.
- Apache Mesos: 대규모 클러스터 관리를 위한 오픈 소스 플랫폼으로, 다양한 작업로드(컨테이너, 가상 머신 등)를 관리하고 스케줄링합니다.
- Nomad: HashiCorp에서 개발한 오픈 소스 작업 스케줄러로, 다양한 유형의 작업(컨테이너, 가상 머신, 스크립트 등)을 관리하고 배포합니다.
- OpenShift: Red Hat에서 개발한 Kubernetes 기반의 PaaS 플랫폼으로, 애플리케이션의 빌드, 배포, 관리를 위한 통합 도구와 기능을 제공합니다.
- Amazon Elastic Kubernetes Service (EKS): Amazon Web Services (AWS)에서 제공하는 완전 관리형 Kubernetes 서비스로, Kubernetes 클러스터를 간편하게 배포하고 운영할 수 있습니다.
- Google Kubernetes Engine (GKE): Google Cloud의 완전 관리형 Kubernetes 서비스로, Google 인프라에서 Kubernetes 클러스터를 관리하고 배포할 수 있습니다.
쿠버네티스가 왜 필요하고 무엇을 할 수 있나
- 서비스 디스커버리와 로드 밸런싱
- 스토리지 오케스트레이션
- 자동화된 롤아웃과 롤백
- 자동화된 빈 패킹(bin packing)
- 자동화된 복구(self-healing)
- 시크릿과 구성 관리
### 대형 클러스터에 대한 고려 사항 클러스터는 컨트롤 플레인에서 관리하는 쿠버네티스 에이전트를 실행하는 노드(물리 또는 가상 머신)의 집합이다. 쿠버네티스 v1.27는 노드 5,000개까지의 클러스터를 지원한다. 보다 정확하게는, 쿠버네티스는 다음 기준을 모두 만족하는 설정을 수용하도록 설계되었다.
- 노드 당 파드 110 개 이하
- 노드 5,000개 이하
- 전체 파드 150,000개 이하
- 전체 컨테이너 300,000개 이하
노드를 추가하거나 제거하여 클러스터를 확장할 수 있다. 이를 수행하는 방법은 클러스터 배포 방법에 따라 다르다.
출처 https://kubernetes.io/ko/docs/home/