NakedFlower 님의 블로그

Kubernetes 기초 본문

Kubernetes

Kubernetes 기초

nakedflower 2025. 10. 20. 16:38

가상화 기술의 역사

 

 

왜 쿠버네티스를 사용해야하는가

왼 : 과거 / 오 : 쿠버네티스 이용

 

과거 서버 관리 방식 

  • 낭비되는 서버 자원 발생
  • 수동 서버 스케일링

쿠버네티스를 이용한 서버 관리 방식

  • 자원 풀링을 통해 낭비되는 서버 자원을 최소화.9
  • 오토 스케일링, 오토 힐링

 

VM과 컨테이너의 차이                   

 

 

 

namespace

커널에 관련된 영역 분리

 

cgroup

자원에 관련된 영역 분리

 

 

 

 

 

VM : 하이퍼바이저를 통해 Guest OS를 가상화해 동작하는 방식

컨테이너 : 호스트 OS 위에서 컨테이너 간 격리 환경을 통해 동작

 

시스템 구조적으로

컨테이너는 한 OS를 공유하는 개념이고 VM은 각각의 OS를 띄워여 하는 구조 -> 컨테이너가 훨씬 빠름

 

하지만, VM을 이용하면 호스트 OS가 윈도우더라도 게스트 OS로 리눅스 활용이 가능하지만, 컨테이너는 리눅스 OS에서 윈도우용 컨테이너를 사용할 수 없다.

또한 보안적으로 VM은 게스트 OS가 뚫려도 다른 게스트 OS나 호스트 OS랑은 완벽하게 분리되어 있어 피해가 전달되지 않지만, 컨테이너는 한 컨테이너가 뚫려서 OS영역에 접근을 하게 되면 다른 컨테이너들도 위험해진다. 

 

 

리눅스, 도커, 쿠버네티스

 

리눅스 :  백엔드 서버를 직접 작성

도커 : 백엔드 서버를 Dockerfile이용해서 이미지로 만들고 이를 컨테이너로 실행하여 서비스 제공

쿠버네티스 : 도커 허브에 올려놓은 이미지를 이용해 pod와 컨테이너를 생성하고 yaml 파일을 작성하여 컨테이너 포트와 외부 포트를 매핑하여 서비스 제공하는 방식

 

Kubernetes Overview

 

 

- Kubernetes는 서버 한 대는 마스터로 쓰고, 다른 서버는 노드 개념으로 연결되어 하나의 클러스터로 묶임

- 마스터는 Kubernetes 의 전반적인 기능들을 컨트롤하는 역할이고 노드들은 자원을 제공하는 역할을 함

- 네임스페이스 객체는 Kubernetes 오브젝트들을 독립된 공간으로 분리하게 해줌

- Pod는 Kubernetes 의 최소 배포 단위

- 네임스페이스에는 Pod들이 외부로부터 연결이 가능하도록 IP를 할당해주는 서비스가 있음

- 파드 안에는 여러 컨테이너가 있음 

- 볼륨을 파드에 연결하면 데이터를 저장할 수 있기 때문에 파드가 재생성되어 데이터가 삭제되는 문제를 해결할 수 있음   

- 네임스페이스 객체에 리소스 쿼터리미트 레인지를 달아서 한 개의 네임스페이스에서 사용할 수 있는 자원의 양( 파드의 갯수, CPU, 메모리 등 )을 한정할 수 있음 

- 컨트롤러가 파드들을 관리해줌

- Replicaset은 파드가 죽으면 감지해서다시 살려줌 / 파드 갯수도 조절 가능(스케일 인 or 아웃)

- Deployment는 배포 후에 파드들을 새 버전으로 업그레이드해줌

- DaemonSet은 한 노드의 파드가 하나씩만 유지되도록 해줌

- CronJob은 어떤 특정 작업만 하고 종료시켜야 하는 일을 할 때 파드가 그렇게 동작하도록 해줌   

 

 

 

Reference : https://inf.run/yW34

'Kubernetes' 카테고리의 다른 글

Kubernetes Controller  (0) 2025.10.22
Kubernetes Objects(2)  (0) 2025.10.20
Kubernetes Objects  (0) 2025.10.20