쿠버네티스란?
컨테이너를 도커 플랫폼에 올려서 관리+운영+클러스터 서비스 지원해 주는 것으로 함축해서 K8s라고 부른다. 운영 수준의 컨테이너 오케스트레이션으로 자동화된 컨테이너 배포, 스케일링과 관리해주는 오픈소스 시스템이다.
쿠버네티스란 명칭은 키잡이나 파일럿을 뜻하는 그리스에서 유래하였고 구글이 2014년에 쿠버네티스 프로젝트를 오픈 소스화했다. 프로덕션 워크로드를 대규모로 운영하는 15년 이상의 구글 경험과 커뮤니티 아이디어와 적용 사례가 결합되어 있다.
* 컨테이너 오케스트레이션이란? 웹서버가 잘 운영될 수 있도록 적합하게 애플리케이션을 배치해주는 것
[ 필요성 ]
쿠버네티스는 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크를 제공한다. 애플리케이션의 확장과 장애 조치를 처리하고, 배포 패턴 등을 제공한다.
[ 특징 ]
- 워크로드 분리 - 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있다.
- 어디서나 실행가능 - 서비스, 기술 지원 및 도구는 어디서나 쉽게 이용할 수 있다. 온프레미스, 퍼블릭 클라우드(AKS, EKS, GKE 등)
- 선언적 API - 선언적 구성과 자동화를 용이하기 해준다.
- 확장성 - 확장가능한 오픈 소스 플랫폼으로 크고, 빠르게 성장하는 생태계를 가지고 있다.
[ 제공하는 것 ]
- 서비스 디스커버리과 로드 밸런싱 - DNS 이름을 사용하거나 자체 IP주소를 사용하여 컨테이너를 노출할 수 있다. 컨테이너에 대한 트래픽이 많으면, 네트워크 트래픽을 로드밸런싱하고 배포한다.
- 스토리지 오케스트레이션 - 로컬 저장소, 공용 클라우드 공급자 등과 같이 원하는 저장소 시스템을 자동으로 탑재할 수 있다.
- 자동화된 롤아웃과 롤백 - 배포된 컨테이너의 원하는 상태를 서술할 수 있으며 현재 상태를 원하는 상태로 설정한 속도에 따라 변경할 수 있다.
- 자동화된 빈 패킹 - 컨테이너화된 작업을 실행하는데 사용할 수 있는 쿠버네티스 클러스터 노드를 제공한다. 각 컨테이너가 필요로 하는 CPU와 메모리를 쿠버네티스에게 지시하고 쿠버네티스는 노드에 맞춰서 리소스를 가장 잘 사용할 수 있도록 해준다.
- 자동화된 복구 - 실패한 컨테이너를 다시 시작하고, 컨테이너를 교체하며, 응답하지 않는 컨테이너를 죽이고, 서비스 준비가 끝날 때까지 그 과정을 클라이언트에 보여주지 않는다.
- 시크릿과 구성 관리 - 암호, OAuth 토큰 및 SSH 키와 같은 중요하고 민감한 정보를 저장하고 관리할 수 있다. 컨테이너 이미지를 재구성하지 않고 스택 구성에 시크릿을 노출하지 않고도 시크릿 및 애플리케이션 구성을 배포 및 업데이트할 수 있다.
- 공식 사이트 : https://kubernetes.io/
- 참조 - https://www.youtube.com/watch?v=Sj9Z6-w1VUE, https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/