Home

[K8s] 15단계로 배우는 도커와 쿠버네티스 [ Chapter 1. 도커와 쿠버네티스의 개요]

코어 자바스크립트

15단계로 배우는 도커와 쿠버네티스

타카라 미호 지음 / 이동규 옮김

제이펍

쿠버네티스(Kubernetes)란?

  • 쿠버네티스란 컨테이너화된 애플리케이션을 효율적으로 배포하고 운영하기 위해 설계된 오픈 소스 플랫폼

    • 컨테이너화..?
    • 애플리케이션 실행에 필요한 라이브러리나 운영체제 패키지 등을 모두 담아서 불변의 실행 환경(Immutable Infrastructure)를 만든다.
    • 이렇게 환경은 만든 경우 모든 개발자, 운영 환경간에 차이를 없앨 수 있다.
  • 구글의 사내 운영 시스템인 Borg를 오픈 소스로 만든것이고 다음의 기능을 제공한다.

    • 배포 계획에 맞춰 애플리케이션을 신속하게 배포 할 수 있다.
    • 컨네이너 갯수, CPU 사용률, 메모리 사용량을 설정 할 수 있다.
    • 저장 공간, 네트워크 접근 제어, 로드밸런싱 기능을 설정 할 수 있다.
    • 가동 중인 애플리케이션을 스케일 업/다운 할 수 있다.
    • 새로운 버전의 애플리케이션을 무정지로 업그레이드 할 수 있다.
    • 하드웨어 가동률을 높여 자원 낭비를 줄인다.

K8s가 해결하는 과제

  • 애플리케이션을 빈번하게 출시하고, 롤백해야 하는 경우
  • 무정지 서비스로 운영해야 하는 경우
  • 초기 비용을 낮추고 비지니스 상황에 맞게 규모를 조정해야 하는 경우
  • 쿠버네티스와 외부 서비스와의 연동
  • 개발 환경과 운영 환경의 분리
  • 온프레미스와 클라우드 위에 구축하는 경우
  • 애플리케이션 중심의 오케스트레이션
  • 특정 기술에 종속되지 않는 표준 기술
  • 서버의 가동률을 높일 필요가 있는 경우

K8s 아키텍처

  • k8s는 클러스 관리를 담당하는 마스터와 컨테이너화된 애플리케이션을 실행하는 노드라는 단 두종류의 서버로 구성된다.
  • 마스터는 kubectl과 같은 API Client로부터 요청을 받아서 애플리케이션 배포, 스케일 업/다운, 컨테이너 버전 등의 요구를 처리하며 단일 장애가 발생하지 않도록 다중화 할 수 있다. Node는 1.11 기준으로 최대 5000개 까지 연결 가능하며, 노드 추가 및 삭제는 애플리케이션 동작중에도 가능하다.
  • K8s 클러스터의 외부에는 레지스트리가 존재하며, 이는 도커의 레지스트리와 동일하다. 각 노드에서 이미지를 다운로드할 수 있도록 네트워크상 접근 가능한 곳에 있어야 한다.
Loading script...