Kubernetes:
컨테이너화된 애플리케이션의 자동 디플로이, 스케일링 등을 제공하는 관리시스템으로, 오픈 소스 기반 시스템입니다.
Kubernetes(쿠버네티스)는 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼입니다.
1주일에 수십억 개의 컨테이너를 생성하는 구글이 내부 배포시스템으로 사용하던 borg를 기반으로 2014년 프로젝트를 시작했으며, 여러 커뮤니티의 아이디어와 좋은 사례를 모아 빠르게 발전하고 있습니다.
단순한 컨테이너 플랫폼이 아닌 마이크로서비스, 클라우드 플랫폼을 지향하고 컨테이너로 이루어진 것들을 손쉽게 담고 관리할 수 있는 그릇 역할을 합니다.
💡예시) 쿠버네티스는 기본적으로 SSL 인증서 관리 기능을 제공하지 않지만, cert-manager를 설치하고 Certificate 리소스를 이용하면 익숙한 쿠버네티스 명령어로 인증서를 관리할 수 있습니다.
<출처>
: 쿠버네티스 시작하기 - Kubernetes란 무엇인가?
쿠버네티스를 이용하여 컨테이너화된 애플리케이션 환경(Containerized Application)을 탄력적으로 실행할 수 있게 됩니다.
프로덕션 환경에서는 애플리케이션을 실행하는 컨테이너를 관리하고 가동 중지 시간이 없는지 확인해야 합니다.
즉, 컨테이너가 다운된다면 다른 컨테이너를 다시 시작하여 가동 중지 시간을 최소화하여야 합니다.
이러한 문제를 시스템에 의해 관리되도록 하는 것이 쿠버네티스의 사용 이유 입니다.
<출처>
: https://kubernetes.io
서비스 디스커버리와 로드 밸런싱
DNS 이름을 사용하거나 자체 IP 주소를 사용하여 컨테이너를 노출합니다.
스토리지 오케스트레이션
로컬 저장소, 공용 클라우드 공급자 등과 같이 원하는 저장소 시스템을 자동으로 적용 해줍니다.
자동화된 롤아웃과 롤백
원하는 상태를 서술하고 현재 상태를 원하는 상태로 설정한 속도에 따라 변경이 가능합니다.
자동화된 빈 패킹
각 컨테이너가 필요로 하는 CPU와 메모리(RAM)를 제공합니다.
자동화된 복구(self-healing)
가동 실패한 컨테이너를 다시 시작하고, 컨테이너를 교체합니다.
시크릿과 구성 관리
Password, OAuth 토큰 및 SSH 키와 같은 중요한 정보를 저장하고 관리합니다.
<출처>
: kubernetes-deployment