2014년 구글에서 쿠버네티스를 발표하였습니다. 구글이 자사 서비스를 호스트하기 위해 개발한 보그라는 오케스트레이션 도구가 그 기원이라고 할 수 있습니다
k8s는 데이터 플레인을 여러 대 실행시켜 그 위에 가상 오케스트레이션 계층을 구축하고 거기에서 컨테이너가 동작합니다.
컨테이너 이용자는 이를 통해 컨테이너 그룹을 하나의 큰 머신 리소스로 볼 수 있어 인프라를 추상화할 수 있습니다. 여러 대의 서버로 구성이 가능해지면 단일 장애점을 배제할 수 있어 큰 장점이 생깁니다.
또한 쿠버네티스는 컨테이너를 컨트롤하거나 관리하는데 새로운 컨테이너를 배포할 시 어떤 가상 머신을 배포하거나 장애가 생긴 컨테이너를 자동으로 판단하고 그에 맞체 대처를 해줍니다..
--> 이러한 기능은 컨트롤 플레인이라는 마스터 노드 그룹에서 구현됩니다..
컨테이너 배포 관리
여러 컨테이너의 배포 프로세스를 최적화 하는것이며 컨테이너와 호스트의 수가 증가함에 따라 효율성이 증대합니다.
하나의 애플리케이션의 다양한 부분들이 통신하는것을 제어하는 방법
하나의 애플리케이션 안에서 여러 서비스들이 서로 통신하며 데이터를 주고받는 것을 서비스의 소스코드와 상관없이 제어하는 것.
서비스 간 네트워크 트래픽을 관리하는 서비스 메쉬 애플리케이션을 데이터 플레인이라고 한다.
쿠버네티스의 최소 단위
파드 하나 안에서는 하나 이상의 컨테이너를 동작시킬 수있다.
파드를 얼마나 동작시킬 지 관리하는 오브젝터
레플리카셋에서 파드의 수를 설정하면 그만큼의 파드가 동작한느것을 보장합니다.
배포 이력을 관리합니다.
쿠버네티스 운영 중에는 애플리케이션의 새로운 버전을 릴리스하거나 부하 증가에 따라 레플리카셋 수를 변경하는 등 여러 가지 동작이 발생하는데 이들은 디플로이먼트로 관리할 수 있습니다.
적용 이력도 관리하므로 새로운 버전에 문제가 발생하였을때 쉽게 롤백이 가능합니다.
파드를 동작시킬 때는 디플로이먼트 단위로 관리한다.
배포한 파드를 쿠버네티스 클러스터 외부에 공개하기 위한 구조를 제공합니다.