
쿠버네티스(Kubernetes)는 다수의 컨테이너를 효율적으로 배포, 확장, 관리하기 위한 오픈 소스 플랫폼입니다. 쿠버네티스란 명칭은 키잡이(helmsman)나 파일럿을 뜻하는 그리스어에서 유래했습니다. 쿠버네티스는 K8s라고도 불리는데, K8s라는 표기는 "K"와 "s"와 그 사이에 있는 8글자를 나타내는 약식 표기입니다.
컨테이너 기반 애플리케이션이 등장하기 전에는 온프레미스 환경에서 서버를 직접 관리하거나, 가상머신(VM)을 통해 운영 환경을 관리하곤 했습니다. 하지만 클라우드 도입과 함께 컨테이너 기술이 확산되면서 애플리케이션 배포 방식에 변화가 일어났습니다. 여러 개의 컨테이너를 배포하고 관리하는 과정은 점점 더 복잡해졌고, 이를 해결하기 위해 쿠버네티스가 등장했습니다. 쿠버네티스는 이러한 복잡성을 해결하고, 컨테이너화된 애플리케이션의 확장성과 안정성을 보장하기 위해 만들어졌습니다.
쿠버네티스를 Docker Compose의 확장판으로 비유하면 조금 더 쉽게 이해할 수 있습니다. Docker Compose가 여러 개의 컨테이너를 정의하고 간단하게 실행하기 위한 도구라면, 쿠버네티스는 이보다 더 큰 규모와 복잡성을 다룰 수 있는 고도화된 관리 시스템이라고 할 수 있습니다.
쿠버네티스에 대해 알아보기 전, 먼저 애플리케이션 실행 환경이 어떻게 변화했는지 살펴보겠습니다.
애플리케이션 실행 환경의 변화는 3단계로 나눠집니다. 전통적인 환경에서의 배포(On-Premise)에서 가상 환경에서의 배포(Virtual Machine)로, 또 컨테이너로의 배포(Container)로 이어집니다.

초기 개발 환경에서는 물리적 서버에서 애플리케이션을 실행했습니다. 하지만 이러한 방식은 애플리케이션 변경 사항을 쉽게 적용하기 어렵고, 물리적 서버 유지 관리에 많은 리소스가 소요되었습니다.

물리적 환경의 단점을 해결하기 위해 가상화 기술이 도입되었습니다. 이를 통해 하나의 물리적 서버에서 여러 대의 가상머신(Virtual Machine)을 실행할 수 있게 되었으며, 애플리케이션 간 격리와 보안 환경 유지가 가능해졌습니다.

컨테이너는 가상머신과 유사하지만 훨씬 가볍고 효율적입니다. 컨테이너는 애플리케이션 실행에 필요한 모든 요소(코드, 라이브러리, 설정 등)를 포함하면서도, 운영 체제와 기본 인프라로부터 독립적입니다. 이로 인해 컨테이너는 클라우드 환경이나 운영 체제 종류와 관계없이 동일한 방식으로 실행될 수 있습니다. 예를 들어, 컨테이너는 파일 시스템, CPU, 메모리 등을 공유하지만 서로 완전히 격리되어 독립적으로 작동합니다.
이러한 이유로 현재는 컨테이너로 배포하는 환경이 주를 이루고 있습니다. 여러 개의 컨테이너를 배포하고 관리하는 과정은 점점 더 복잡해졌고, 이를 해결하기 위해 쿠버네티스가 등장했습니다. 쿠버네티스는 이러한 복잡성을 해결하고, 컨테이너화된 애플리케이션의 확장성과 안정성을 보장하기 위해 만들어졌습니다.
쿠버네티스를 활용하면 컨테이너를 더욱 효율적이고 안정적으로 관리할 수 있습니다.
쿠버네티스는 애플리케이션의 배포, 확장, 업데이트 과정을 자동화합니다. 이를 통해 수동으로 작업할 필요 없이 애플리케이션을 쉽게 배포하고, 필요에 따라 자동으로 확장하거나 축소할 수 있습니다.
애플리케이션의 요청이 여러 컨테이너에 고르게 분산되도록 합니다. 이를 통해 트래픽이 집중되는 상황에서도 애플리케이션의 성능을 유지할 수 있습니다.
트래픽 증가에 따라 애플리케이션의 인스턴스를 쉽게 늘릴 수 있습니다. 반대로, 트래픽이 줄어들면 리소스를 절약하기 위해 자동으로 인스턴스를 줄이는 것도 가능합니다.
쿠버네티스는 문제가 발생한 컨테이너를 자동으로 재시작하거나 교체합니다. 예를 들어, 특정 컨테이너가 비정상적으로 동작할 경우 이를 감지하여 건강한 상태로 복구시킵니다.
쿠버네티스는 AWS, Azure, Google Cloud와 같은 다양한 클라우드 플랫폼에서 동작합니다. 특정 클라우드 제공업체에 종속되지 않으므로, 어디에서든 동일한 환경을 구축하고 운영할 수 있습니다. 이로 인해 여러 클라우드 환경에서도 일관된 방식으로 운영이 가능하며, 멀티 클라우드 전략을 쉽게 실현할 수 있습니다.
쿠버네티스는 지속적 통합(CI)과 지속적 배포(CD) 파이프라인을 구축하기에 적합한 환경을 제공합니다. 이를 통해 개발부터 배포까지의 프로세스를 더욱 간소화할 수 있습니다.
Docker Desktop을 활용하여 쿠버네티스를 설치합니다.
Docker Desktop 링크로 접속하여 Apple Silicon 버전(Apple M 시리즈 칩셋에 해당)을 다운로드 후 설치합니다.



macOS에 kubectl 설치 및 설정 링크를 참고하여, Kubernetes를 관리할 수 있는 CLI 도구 kubectl을 설치합니다. 이 도구를 사용하면 Kubernetes 클러스터를 명령어로 제어할 수 있습니다.
kubectl 설치
터미널에서 아래 명령어를 입력하여 kubectl을 설치합니다.
brew install kubectl

설치 확인
설치가 완료되면 다음 명령어를 실행하여 설치된 버전을 확인합니다.
kubectl version

설치가 성공적으로 완료되었다면, 클라이언트 및 서버 버전 정보가 출력됩니다.