본문 바로가기

교육/Basic 과정

쿠버네티스(Kubernetes) 알아보기

kt cloud와 함께하는 kubernetes 기본개념의 이해

컨테이너(Container)에 대해서도 한계점은 있습니다. 컨테이너(Container)는 가벼운 대신 하나의 서버 또는 VM에 여러 개의 컨테이너(Container)들이 동작한다면 이렇게 많은 컨테이너(Container)들을 어떻게 관리할 수 있을까요?

 

컨테이너 엔진인 도커(Docker)는 하나의 서비스를 컨테이너로 가상화시켜 배포하는 역할만 할 뿐 수 많은 컨테이너 서비스를 일일이 배포하고 운영/관리하는 역할을 하지는 않습니다. 따라서 컨테이너(Container) 관리자의 경우 VM SSH로 접속해 실행되고 있는 VM마다 들어가서 관리해야하는 불편함을 갖고 있습니다. 만약 서버가 다운되면 서버안의 모든 컨테이너(Container)가 종료되는 단점이 발생하고, 이를 개선하기 위해 모니터링 할 수 있는 기능이 있었으면 좋겠다는 개선사항이 개발자들 사이에서 빗발쳤죠. 뿐만 아니라 컨테이너(Container) 네트워크나 배포 프로세스에 어려움을 겪게 됩니다이를 해결하기 위해 컨테이너(Container)를 관리해줄 수 있는 Container Orchestration Tool이 생겨났고, 도커(Docker), 아마존 ECS와 같이 이 툴이 탄생하게된 배경이기도 합니다. Container Orchestration Tool 중에서 가장 많이 사용하는 Tool이 바로 '쿠버네티스(Kubernetes)'입니다.

쿠버네티스(Kubernetes) 알아보기

목차

1. Kubernetes 란?

2. Kubernetes 구조

3. Kubernetes 기능

 

1. Kubernetes ?

쿠버네티스(kubernetes) Container Orchestration Tool


알아서 컨테이너를 관리해주고, 알아서 장애를 막아주고, 알아서 가장 효율적으로 리소스를 관리/실행해주는 Container Orchestration Tool를 말합니다.

쿠버네티스 대표적인 적용사례_넷플릭스, 포켓몬고


Kubernetes
를 이용한 서비스로 가장 대표적인 사례가 바로 '넷플릭스, 포켓몬 고'인데요. 이와 같이 대규모 서비스 제공때 쿠버네티스가 사용되고 있습니다.

2. Kubernetes 구조

쿠버네티스(kubernetes)의 구조


시스템 관리자가 수행하는 작업인 로깅, 모니터링과 같은 작업들을 선언형 아키텍처 기반의 Object로 배포 하여 Kubernetes가 알아서 관리합니다. 이렇게 알아서 관리해주기 위해서는 클러스터(마스터-워커) 구조가 필요합니다. 자세한 내용은 영상으로 확인하세요.

 

3. Kubernetes 기능

- Self-Healing

쿠버네티스기능_Self-Healing

Self-Healing은 시스템이 영향을 받을때마다 컨테이너의 상태감지 및 비정상적인 경우 자체적으로 교체하여 최대한 안정적인 서비스를 유지하도록 해줍니다.

- Rolling Update & Rollback

쿠버네티스기능_Rolling Update & Rollback

Rolling Update & Rollback 기능은 이미지 Tag 기능을 통한 버전 관리를 할 수 있도록 해줍니다.


-Load Balancing

쿠버네티스기능_Load Balancing

Load Balancing은 쿠버네티스 기능의 세번째로, Service Object를 사용하여 Poddp 트래픽을 분산 할 수 있도록 돕지요.

 

-Auto Scaling

쿠버네티스기능_Auto Scaling

Auto Scaling은 트래픽 분산으로도 부족할 경우에 많은 트래픽이 발생했다면,  트래픽 양이나 리소스 사용에 기반해서Pod를 추가적으로 더 생성하는 기능을 말합니다.  Pod의 개수를 조정하는 HPA(Horizontal Pod Autoscaler)를 통해 가능합니다.

 

💁영상으로 학습하기