컨테이너 기반의 오픈 소스 가상화 프로젝트
쿠버네티스는 클라우드 네이티브 구성요소를 완전히 수행할 수 있는 플랫폼이다.
그러려면 클라우드 네이티브가 무엇을 말하는지를 알아야한다.
"클라우드의 장점을 최대한 활용하여 정보 시스템을 구축 및 실행하는 환경"
클라우드 네이티브 기술은 조직이 퍼블릭, 프라이빗, 그리고 하이브리드 클라우드와 같은 현대적이고 동적인 환경에서 확장 가능한 애플리케이션을 개발하고 실행할 수 있게 해준다. 컨테이너, 서비스 메쉬, 마이크로서비스, 불변(Immutable) 인프라, 그리고 선언형(Declarative) API가 이러한 접근 방식의 예시들이다.
이 기술은 회복성, 관리 편의성, 가시성을 갖춘 느슨하게 결합된 시스템을 가능하게 한다. 견고한 자동화 기능을 함께 사용하면, 엔지니어는 영향이 큰 변경을 최소한의 노력으로 자주, 예측 가능하게 수행할 수 있다.
라고 CNCF 에서 발표했다.
클라우드 네이티브 기술, 애플리케이션, 아키텍처, 개발방법론, 조직, 프로세스 등 다양한 용어와 결합하여 다양한 의미로 사용된다.
| 구분 | 기존 애플리케이션 | 클라우드네이티브 애플리케이션 |
|---|---|---|
| 애플리케이션 구조 | Monolithic | MicroService |
| 결합 | 크고, 조밀한 결합 | 느슨한, 서비스 기반 |
| 실행 환경 | 물리서버 중심 | 가상 컨테이너 중심 |
| 확장 | 수직 확장 | 수평 확장 |
| 인프라 의존성 | 인프라 의존 | 인프라 독립, 이식성 보장 |
| 개발 방법 | 폭포수 | 애자일 |
| 빌드 및 배포 | 수작업 | CI/CD 자동화, 짧은 시간 & 지속적 |
| 조직 구조 | 단절된 개발, 운영, 보안 팀 | 데브옵스 협업 |





분산시스템 환경에서의 Transaction 보장과 테스트, 배포, 관리가 복잡하다는 점이 큰 단점이다.
이러한 문제를 해결하기 위해 가상화 기술이 나온다.
가상화기술이란 전통적으로 하드웨어 종속된 리소스를 사용하여 서비스를 만드는 기술이다.
가상화를 사용하면 물리적 머신의 기능을 여러 사용자 또는 환경에 배포해 물리적 머신을 최대한 활용 가능하다.

이런 가상화 기술들을 사용한게 도커를 의미하고 도커와 컨테이너에 대한 내용은 따로 다룬 내용이 있으니 참고 바란다.
가상화 기술들을 사용한 컨테이너들을 오케스트레이션 하는 것이 쿠버네티스이다.
컨테이너들의 자동 배포, 확장, 복구를 통해 높은 가용성과 확장성을 위해 사용한다.