Skip to content

Computer Science

Kubernetes

k8s.svg

Kubernetes(K8s) 는 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화해주는 오픈소스 클러스터 서비스이다. 구글이 내부적으로 사용하던 Borg 클러스터 설계 노하우를 바탕으로 제작되었으며, 현재는 Container Orchestration 분야의 표준으로 자리잡았다. Docker 가 애플리케이션을 "어떻게 배포할 것인지"를 해결했다면, 쿠버네티스는 "수많은 컨테이너를 어떻게 운영하고 자동화할지"를 해결한다.

  1. 자동 회복: 컨테이너가 다운되거나 응답하지 않을 경우 자동으로 재시작
  2. 로드 밸런싱: 트래픽을 여러 파드로 분산시켜 안정적인 서비스를 제공
  3. 오토 스케일링: 자원 사용량에 따라 자동으로 컨테이너 개수를 늘리거나 줄이고 트래픽 요구사항에 대응
  4. 무중단 배포: 서비스 중단 없이 롤링 업데이트를 진행하고, 문제 발생 시 이전 버전으로 롤백

무중단 서비스를 운영하거나 규모 있는 개발을 진행한다면 DevOps 와 함께 쿠버네티스 도입을 적극 고려해보자. 필자는 클러스터를 직접 구축했던 경험을 가이드라인 형태로 공유하고자 한다.

멀티캐스트 DNS

멀티캐스트 DNS는 중앙 DNS 서버 없이 로컬 네트워크 환경에서 호스트 이름을 IP 주소로 확인하는 프로토콜이다. 일반적인 DNS 서버는 FQDN 을 IP 주소로 변환하지만, 멀티캐스트 DNS는 네트워크 안에서 호스트 이름을 IP 주소로 변환한다. IETF RFC 6762 로 정의된 기술 규격으로, 별도의 설정 없이 네트워크 장치 간에 호스트 이름을 인식할 수 있다. 기본적으로 로컬 Link 전용 도메인인 .local 로 끝나는 호스트 이름만 확인된다.