[k8s] 1. 소개

ㅎㅈㅈㅇ·2021년 6월 27일
0

Kubernetes

목록 보기
1/6

배경

  • 모놀리스 앱과 마이크로서비스
  • 가상머신과 리눅스 컨테이너
  • 컨테이너와 도커

쿠버네티스 소개

  • 컨테이너화된 앱의 배포 및 관리 시스템
    • 컨테이너 기반이기에 동일한 하드웨어에서 앱 간에 영향을 미치지 않음
  • 핵심 컨셉
    • 개발자가 앱과 인프라의 연관 관계에 들이는 시간을 절약
    • 인프라 리소스를 최대로 활용
  • 쿠버네티스 클러스터 아키텍처 이해
    • 노드 종류
      • 마스터 노드: 전체 쿠버네티스 시스템을 제어하고 관리하는 컨트롤 플레인 실행
      • 워커 노드: 실제 배포되는 컨테이너 앱 실행
    • 구성 요소
      • 컨트롤 플레인: API 서버, 스케줄러, 컨트롤러 매니저, Etcd
      • 워커 노드: 컨테이너 런타임(도커, rkt), Kubelet, Kube-proxy

쿠버네티스에서 앱 실행

  • 절차
    • 앱을 하나 이상의 컨테이너 이미지로 패키징
    • 이미지 레지스트리로 푸시
    • 쿠버네티스 API 서버에 앱 디스크립션 게시
  • 핵심 동작 원리
    • 디스크립션이 컨테이너를 실행하는 방법
    • 실행된 컨테이너 유지: 앱 배포 상태와 디스크립션의 일치 여부 지속 확인
    • 복제본 수 스케일링: 쿠버네티스가 직접 최적의 복제본 수 결정 가능
    • 이동한 앱에 접근하기: 고정 IP 주소로 동일한 서비스의 컨테이너를 노출

쿠버네티스 장점

  • 앱 배포의 단순화: 모든 워커 노드를 하나의 배포 플랫폼으로 제공, 클러스터를 구성하는 서버에 관해 몰라도 됨
  • 하드웨어 활용도 극대화: 인프라와 앱을 분리 가능. 리소스 요구 사항에 가장 적합한 노트 선택 가능
  • 상태 확인 및 자가치유: 노드 장애 발생 시 다른 노드로 자동 스케줄링
  • 오토스케일링
  • 앱 개발 단순화: 버그의 원인의 빠른 탐색, 앱의 새로운 버전의 오류 감지 시 즉시 롤아웃 중지

0개의 댓글