[k8s] 쿠버네티스(Kubernetes)란 무엇인가?

2025. 3. 14. 02:04·BEYOND SW [4] DevOps

🐳 쿠버네티스란 무엇인가?

Kubernetes | 쿠버네티스란? 
컨테이너화된 애플리케이션을 자동으로 배포하고 운영 및 확장하는 오픈소스 플랫폼.

 

01. 왜 쿠버네티스를 써야 하는가? 🤔

🧑🏻‍🏫💬

요즘 사용자들은 더 빠르고, 더 안정적이며, 새로운 기능이 자주 추가되는 서비스를 원한다. 개발자는 이런 요구를 충족시키려면 짧은 시간에 고품질 애플리케이션을 개발해야 하기에, 대부분 오픈 소스를 가져다 쓰게 된다..
하지만 문제는 오픈 소스의 버전이 자주 바뀌고, 같은 팀 개발자들끼리도 사용하는 버전이 달라지는 상황이 발생한다.

 

👉 컨테이너는 이러한 문제를 해결해준다.

컨테이너 안에 필요한 ✔️라이브러리, ✔️운영체제 패키지 등 모든 실행 환경을 통째로 담아서 공유할 수 있음.
덕분에 개발 환경의 일관성을 유지할 수 있고, 배포도 쉬워진다.


02. 쿠버네티스란? 🚀

  • 쿠버네티스(Kubernetes, 이하 k8s)는 컨테이너화된 애플리케이션을 효율적으로 배포하고 운영하기 위해 설계된 오픈 소스 플랫폼이다. 원래는 구글 내부 시스템이었던 Borg를 오픈소스로 공개한 것을 기반으로 만들어졌다.
  • ☁️클라우드 환경☁️ 에서 대규모 애플리케이션을 효율적으로 관리하기 위한 솔루션으로 개발되었으며, 다양한 클라우드 환경에서 동작하며, AWS, GCP, Azure 등 주요 클라우드 서비스 제공 업체에서도 공식적으로 지원하고 있음.

03. 쿠버네티스의 대표적인 기능

✅ 애플리케이션 배포 자동화

k8s는 애플리케이션을 배포 계획에 맞게 신속하게 배포할 수 있음.

  • 🏿CPU 사용률, 💾메모리 사용량, 🏗️컨테이너 수, 💿저장 공간 등을 모두 설정 가능‼️

이런 자원 사용량을 설정하고, 조건에 따라 가동중인 애플리케이션을스케일 업/다운이 가능함.

✅ 무중단 배포(Zero Downtime Deployment)

운영 중인 서비스의 새로운 버전을 사용자 모르게 무중단으로 배포 가능함.
롤링 업데이트나 블루-그린 배포 전략을 쉽게 적용할 수 있음.

더보기
더보기
더보기

🔄 롤링 업데이트(Rolling Update)

👉 점진적으로 애플리케이션 버전을 업그레이드하는 방식

  • 기존 버전의 Pod를 하나씩 종료하고, 새 버전의 Pod를 하나씩 생성함.
  • 시스템 전체를 다운시키지 않고 서서히 바뀌는 것이 포인트임.

🟢🔵 블루-그린 배포(Blue-Green Deployment)

👉 두 개의 독립적인 환경을 만들어서 배포하는 방식

  • 기존 버전은 Blue, 새 버전은 Green 환경에 배포함
  • Green이 준비 완료되면 트래픽을 스위칭해서 전환함

✅ 하드웨어 자원 효율화

하드웨어 가동률을 높여서 자원 낭비를 줄일 수 있음.
여러 서비스가 클러스터에 동시에 올라가고, 남는 리소스를 효율적으로 재분배함.


04. 쿠버네티스 아키텍처 

쿠버네티스는 마스터-노드 아키텍처로 구성되어 있다.

  • 마스터 노드: 클러스터를 전체적으로 관리하는 역할을 함.
  • 워커 노드: 실제로 컨테이너가 배포되어 실행되는 곳임.

POD 안에는 컨테이너가 1개 이상 존재할 수 있다..

쿠버네티스 아키텍처

출처 🔗  itwiki.kr

Kubernetes Cluster
┌─ Control Plane (Master Node) 			(클러스터 제어)
│  ├─ API Server          				(모든 명령의 입구)
│  ├─ Scheduler             			(Pod가 어디서 돌지 결정)
│  ├─ Controller Manager    			(상태를 원하는대로 유지)
│  ├─ etcd (Key-Value Store)             (클러스터 상태 저장 DB)
│
└─ Worker Nodes 								(실제 일하는 서버)
   ├─ kubelet            			   			(Pod 실행 & 상태 관리)
   ├─ kube-proxy         			   			(네트워크 연결 및 로드밸런싱)
   └─ Container Runtime (ex: containerd, Docker) (컨테이너 실행, ex: containerd)

Pods (on Worker Nodes)		(컨테이너 실행 단위)
└─ Containers               (실제 실행되는 앱 + 환경)
    └─ Application + Dependencies

 

ASCII 포스터

┌──────────────────────────────┐
│        Control Plane         │  << 클러스터 전체 관리
│  (Master Node 역할)          │
│                              │
│  ┌────────────────────────┐  │
│  │      API Server        │  << 모든 명령의 입구
│  └────────────────────────┘  │
│               │               │
│               ▼               │
│  ┌────────────────────────┐  │
│  │   Scheduler            │  << 어떤 노드에 Pod 배포할지 결정
│  └────────────────────────┘  │
│               │               │
│               ▼               │
│  ┌────────────────────────┐  │
│  │ Controller Manager     │  << 클러스터 상태를 지속적으로 감시하고 조치
│  └────────────────────────┘  │
│               │               │
│               ▼               │
│        ┌────────────┐         │
│        │    etcd    │         │ << 클러스터 상태 저장소 (Key-Value DB)
│        └────────────┘         │
└──────────────────────────────┘
                │
                ▼
┌───────────────────────────────────────────────────┐
│                   Worker Nodes                   │  << 실제 앱이 돌아가는 곳
│  (각 노드는 아래 컴포넌트를 가짐)               │
│                                                   │
│  ┌────────────────────┐   ┌────────────────────┐ │
│  │    kubelet         │   │    kubelet         │ │ << 컨테이너 상태를 관리하고 명령 수행
│  ├────────────────────┤   ├────────────────────┤ │
│  │    kube-proxy      │   │    kube-proxy      │ │ << 네트워크 트래픽 관리 및 로드밸런싱
│  ├────────────────────┤   ├────────────────────┤ │
│  │    Pod(s)          │   │    Pod(s)          │ │ << 컨테이너가 실행되는 단위
│  │  ┌──────────────┐  │   │  ┌──────────────┐  │ │
│  │  │  Container(s)│  │   │  │  Container(s)│  │ │ << 실제 어플리케이션 실행
│  │  └──────────────┘  │   │  └──────────────┘  │ │
│  └────────────────────┘   └────────────────────┘ │
└───────────────────────────────────────────────────┘

 


입문자의 마음가짐.. 🍂🍂

  • 컨테이너 개념과 Docker가 먼저 숙지되어야 함.
    쿠버네티스는 결국 컨테이너를 관리하는 플랫폼이다..
  • 쿠버네티스는 복잡한 시스템이다.. kubectl 명령어부터 익히고, 간단한 클러스터를 띄우는 것부터 시작해야 함.
  • 🔗링크 🐳 쿠버네티스 설치 환경 고르는 방법

 

참고 자료

  • 공식 홈페이지: https://kubernetes.io
  • itwiki.kr 아키텍처 이미지 출처: https://itwiki.kr
  • CNCF: https://www.cncf.io/

'BEYOND SW [4] DevOps' 카테고리의 다른 글

[k8s] 쿠버네티스 설치 환경 고르는 방법  (0) 2025.03.18
[아카이브] Windows11에서 도커 테스크탑 실행 무한대기 문제 발생 시 필수 의례사항  (0) 2025.03.18
[k8s] 실습 ① ubuntu서버에 containerd 준비하기  (3) 2025.03.14
[Docker +] 쉘 프로그래밍 Shell Programming 문법과 간단 실습  (1) 2025.03.13
[Docker] 2일차 - 도커 네트워크의 이해 실습  (2) 2025.03.12
'BEYOND SW [4] DevOps' 카테고리의 다른 글
  • [k8s] 쿠버네티스 설치 환경 고르는 방법
  • [아카이브] Windows11에서 도커 테스크탑 실행 무한대기 문제 발생 시 필수 의례사항
  • [k8s] 실습 ① ubuntu서버에 containerd 준비하기
  • [Docker +] 쉘 프로그래밍 Shell Programming 문법과 간단 실습
알파카1234
알파카1234
기대와는 다른 현실에 실망하고, 대신 생각지도 않던 어떤 것을 얻고, 그로 인해 인생의 행로가 미묘하게 달라지고, 한참의 세월을 지나 오래전에 겪은 멀미의 기억과 파장을 떠올리고, 그러다 문득 자신이 어떤 사람인지 조금 더 알게 되는 것. 생각해보면 나에게 여행은 언제나 그런 것이었다. - 김영하 『여행의 이유』 p. 51.
  • 알파카1234
    알파카 로그
    알파카1234
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (97)
      • BEYOND SW [1] 기반기술 (20)
        • 강의 메모 (2)
        • 리눅스 & 네트워크 (8)
        • SQL & DB (6)
        • 소프트웨어공학 아키텍처 (4)
      • BEYOND SW [2] 프론트엔드 (0)
        • HTML CSS (0)
      • BEYOND SW [3] 백엔드 (28)
      • BEYOND SW [4] DevOps (14)
      • BEYOND SW [5] 최종프로젝트 (4)
      • WEB front-end 개념정리 (4)
        • 웹 동작 원리와 개념 (0)
        • 웹퍼블리싱을 위한 HTML + CSS (2)
        • 웹퍼블리싱을 위한 Javascript (2)
      • 딥러닝 AI 공부 (4)
      • 2021-가을학기 (16)
        • 프로그래밍개론 (8)
        • 심리통계분석 I (8)
        • 데이터베이스설계와질의 (0)
      • 2024-봄학기 (0)
        • 프로그래밍언어론 (0)
        • 현대사회와심리학 (심리학개론) (0)
        • 현대사회와언어심리학 (언어심리학개론) (0)
      • 잡담 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    도커 허브에 이미지 업로드
    ubuntu docker 설치 명령어
    도커 이미지 pull
    django rest framework 객체 저장되는 곳
    db.sqlite3
    파이썬
    (wsl update 오류 해결 방법)
    파이썬 접근제어자
    리눅스 도커 설치
    wsl update failed
    명령프롬프트 장고 명령어
    django 백엔드
    작문
    django 모델 객체가 저장되는 곳
    명령프롬프트 django 명령어
    docker desktop 무한대기
    django rest framework 모델
    Django
    도커 이미지 push
    django db
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
알파카1234
[k8s] 쿠버네티스(Kubernetes)란 무엇인가?
상단으로

티스토리툴바