쿠버네티스 개요

쿠버네티스 개요 (Overview)

쿠버네티스(Kubernetes)는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식 가능·확장 가능·오픈소스 플랫폼이에요. 선언적 설정과 자동화를 모두 지원하죠. 생태계가 크고 빠르게 성장하고 있으며, 쿠버네티스 서비스·지원·도구도 널리 사용할 수 있습니다. 이 페이지는 쿠버네티스 전반을 소개하는 개요입니다.

출처: 쿠버네티스 공식 문서 — Overview

쿠버네티스라는 이름은 그리스어에서 유래했고, "키잡이(helmsman) 또는 조종사(pilot)"를 뜻해요. K8s라는 약어는 "K"와 "s" 사이의 여덟 글자를 세어서 만든 표기입니다. 구글은 2014년에 쿠버네티스 프로젝트를 오픈소스로 공개했어요. 쿠버네티스는 구글이 대규모 프로덕션 워크로드를 운영하며 쌓은 15년 이상의 경험과, 커뮤니티의 최고 수준 아이디어·방식을 결합한 것입니다.

왜 쿠버네티스가 필요하고 무엇을 할 수 있을까?

컨테이너는 애플리케이션을 묶고 실행하기 좋은 방법이에요. 하지만 프로덕션 환경에서는 애플리케이션을 실행하는 컨테이너를 관리하고 다운타임을 없애야 합니다. 예를 들어 컨테이너가 다운되면 다른 컨테이너가 시작되어야 하죠. 이런 동작을 시스템이 처리해 준다면 훨씬 수월하겠죠? 쿠버네티스가 바로 그 역할을 해줍니다.

쿠버네티스는 분산 시스템을 탄력적으로 실행하기 위한 프레임워크를 제공해요. 애플리케이션의 스케일링과 장애 조치(failover)를 처리하고, 배포 패턴을 제공하며, 그 밖의 일들을 담당합니다. 예를 들어 쿠버네티스는 카나리아(canary) 배포를 쉽게 관리할 수 있어요.

쿠버네티스가 제공하는 것들:

  • 서비스 디스커버리와 로드 밸런싱 — 쿠버네티스는 컨테이너를 DNS 이름이나 자체 IP로 노출할 수 있어요. 컨테이너로 가는 트래픽이 많으면, 쿠버네티스가 네트워크 트래픽을 로드 밸런싱·분산해서 배포를 안정적으로 유지합니다.
  • 스토리지 오케스트레이션 — 로컬 스토리지, 퍼블릭 클라우드 프로바이더 등 원하는 스토리지 시스템을 자동으로 마운트하게 해줍니다.
  • 자동화된 롤아웃과 롤백 — 배포된 컨테이너의 원하는 상태를 설명할 수 있고, 쿠버네티스는 현재 상태를 통제된 속도로 원하는 상태로 바꿔요. 예를 들어 배포를 위해 새 컨테이너를 만들고, 기존 컨테이너를 제거하며, 그 리소스를 새 컨테이너에 넘기도록 자동화할 수 있습니다.
  • 자동 빈 패킹 (Automatic bin packing) — 쿠버네티스에 컨테이너화된 작업을 실행할 노드 클러스터를 제공하고, 각 컨테이너가 필요한 CPU와 메모리를 알려주면 쿠버네티스가 노드에 컨테이너를 알맞게 배치해 리소스를 최대한 활용합니다.
  • 자가 치유 (Self-healing) — 쿠버네티스는 실패한 컨테이너를 재시작하고, 컨테이너를 교체하며, 사용자 정의 상태 체크에 응답하지 않는 컨테이너를 죽이고, 서비스 준비가 될 때까지 클라이언트에 알리지 않습니다.
  • 시크릿과 설정 관리 — 비밀번호, OAuth 토큰, SSH 키 같은 민감한 정보를 저장·관리할 수 있어요. 컨테이너 이미지를 다시 빌드하거나 스택 설정에 시크릿을 노출하지 않고도 시크릿과 애플리케이션 설정을 배포·업데이트할 수 있습니다.

더 알아보기 (Learn more)