본문 바로가기

[IT] 쿠버네티스(kubernetes) 기본 개념 정리

요즘 개발은 컨테이너 개발 시대가 도래함에 따라 많은 기업들이 쿠버네티스를 활용하고 있다.

IT 기업의 개발자로 이직이나 새로 취직할 때 한 번쯤 물어보는 쿠버네티스에 대해 간략히 알아보자.

 

쿠버네티스란?

쿠버네티스는 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리하기 위한 오픈 소스 플랫폼입니다. 구글에서 개발된 이 기술은 컨테이너 오케스트레이션 시스템으로서, 다수의 컨테이너화된 애플리케이션을 클러스터로 구성하여 관리합니다. 쿠버네티스를 사용하면 애플리케이션을 효율적으로 배포하고 운영할 수 있으며, 자동화된 스케일링, 자원 관리, 로드 밸런싱, 상태 모니터링, 롤링 업데이트 등을 지원하여 개발자들이 애플리케이션을 더 쉽게 관리할 수 있게 합니다.

개발 환경의 변화

공식 문서

 

쿠버네티스는 어떤 것들을 할 수 있는가?

클러스터 설정: 쿠버네티스 클러스터를 설정하고 구성합니다. 클러스터는 마스터 노드와 워커 노드로 구성되며, 마스터 노드는 클러스터의 제어를 담당하고 워커 노드는 애플리케이션을 실행합니다.


애플리케이션 배포: 쿠버네티스를 사용하여 컨테이너화된 애플리케이션을 배포합니다. 이를 위해 Docker와 같은 컨테이너 기술을 사용하여 이미지를 빌드하고 쿠버네티스의 리소스 정의 파일을 작성합니다.


리소스 관리: 쿠버네티스를 통해 애플리케이션의 리소스 사용량을 관리하고 스케일링을 수행합니다. 이를 통해 애플리케이션이 필요한 만큼의 리소스를 가질 수 있고, 트래픽이 증가하거나 감소할 때 자동으로 스케일링되도록 설정할 수 있습니다.


서비스 관리: 쿠버네티스를 사용하여 서비스를 노출하고 트래픽을 분산시킵니다. 서비스는 여러 개의 파드를 하나의 단일 진입점으로 묶어 클라이언트 애플리케이션이 이를 사용할 수 있도록 해줍니다.


모니터링 및 로깅: 쿠버네티스 클러스터에서 실행되는 애플리케이션을 모니터링하고 로깅하는 것이 중요합니다. 이를 위해 다양한 모니터링 및 로깅 도구를 사용하여 클러스터 및 애플리케이션의 상태를 확인하고 문제를 해결합니다.

 

AWS에서도 사용되는가?

쿠버네티스는 AWS 내에서도 활용됩니다. AWS는 Kubernetes 서비스를 제공하며, Amazon Elastic Kubernetes Service (EKS)가 그 예입니다.

Amazon EKS는 관리형 Kubernetes 서비스로, 사용자가 쿠버네티스 클러스터를 쉽게 배포하고 관리할 수 있도록 지원합니다. 이 서비스를 통해 사용자는 AWS 인프라에서 Kubernetes 클러스터를 실행할 수 있으며, 마스터 노드의 관리 및 업데이트는 AWS가 담당합니다. 이를 통해 사용자는 쿠버네티스에 대한 관리 부담을 줄이고 애플리케이션에 집중할 수 있습니다.

또한, AWS는 EKS를 통해 다양한 AWS 서비스와의 통합을 제공하여 개발자들이 클라우드 네이티브 애플리케이션을 구축하고 실행하는데 도움을 줍니다. 예를 들어, Amazon EKS는 AWS IAM(Internet Access Management)과 통합하여 클러스터와 애플리케이션에 대한 인증 및 권한 부여를 관리할 수 있습니다.

따라서 AWS 내에서도 쿠버네티스를 활용하여 클라우드 환경에서의 애플리케이션 배포 및 관리를 용이하게 할 수 있습니다.

 

쿠버네티스는 도커(Docker)와 함께 사용해야 하는가?

쿠버네티스는 도커와 함께 사용하는 경우가 많지만, 반드시 함께 사용해야 하는 것은 아닙니다. 쿠버네티스는 컨테이너 오케스트레이션 시스템으로, 도커와 호환되는 컨테이너 포맷을 사용합니다. 따라서 도커 이미지를 사용하여 쿠버네티스 클러스터에서 애플리케이션을 배포할 수 있습니다.

하지만 쿠버네티스는 도커만을 위한 것은 아닙니다. 다른 컨테이너 런타임(예: Containerd, CRI-O 등)을 사용하여도 쿠버네티스 클러스터에서 컨테이너를 실행할 수 있습니다. 이 경우, 해당 런타임이 지원하는 컨테이너 포맷을 사용하여 이미지를 빌드하고 배포할 수 있습니다.

따라서 쿠버네티스는 도커와 함께 사용할 수 있지만, 도커만을 사용하는 것은 아닙니다. 다른 컨테이너 런타임과도 함께 사용할 수 있으며, 쿠버네티스는 이러한 다양한 컨테이너 런타임을 지원합니다. 사용자는 자신의 요구에 맞게 적절한 컨테이너 기술을 선택하여 쿠버네티스를 구성하고 사용할 수 있습니다.

 

※ 도커란? 도커(Docker)는 컨테이너 기반의 가상화 플랫폼입니다. 개발자들은 도커를 사용하여 애플리케이션과 그 종속성을 컨테이너로 패키징할 수 있습니다. 이 컨테이너는 호스트 운영 체제와 독립적으로 실행될 수 있으며, 개발 환경에서 프로덕션 환경까지 일관되게 배포될 수 있습니다.

 

쿠버네티스를 설치 후 배포하면 어플리케이션 상태를 볼 수 있나?

쿠버네티스는 UI를 제공합니다. 쿠버네티스에는 기본적으로 쿠버네티스 대시보드(Kubernetes Dashboard)라는 공식적인 UI가 있습니다. 쿠버네티스 대시보드는 쿠버네티스 클러스터의 상태를 시각적으로 표시하고, 리소스 사용량, 애플리케이션 상태, 노드 상태 등 다양한 정보를 확인할 수 있도록 해줍니다.

쿠버네티스 대시보드를 사용하면 클러스터 내의 리소스를 시각화하고, 파드, 서비스, 노드 등을 관리할 수 있습니다. 또한 애플리케이션 로그를 조회하고, 실행 중인 작업을 모니터링하며, 리소스 사용량을 확인할 수 있습니다.

쿠버네티스 대시보드는 일반적으로 웹 브라우저를 통해 접근할 수 있으며, 쿠버네티스 클러스터가 설치된 환경에 따라 다양한 방법으로 액세스할 수 있습니다. 대시보드를 사용하려면 쿠버네티스 클러스터가 설치된 환경에 따라 인증 및 접속 방법을 설정해야 할 수 있습니다.

 

쿠버네티스 다운로드 경로

반응형
그리드형