쿠버네티스란 무엇인가

이권동·2023년 2월 26일
0

MLOps

목록 보기
1/4
post-thumbnail

이번 시리즈는 kubeflow를 설명하기 앞서 쿠버네티스에 대해 내가 이해한걸 정리 한 글이다.
쿠버네티스의 전체적인 기능을 설명하는 것이 아닌 딱 사용할때 동작하는 간단한 원리를 정리하였다.

컨테이너가 먼대?

쿠버네티스 공식 홈페이지에서 설명되어 있는 글에는 아래와 같이 설명되어있다.

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다.

우선 저 글만 봤을 때 쿠버네티스를 이해하기 위해서는 컨테이너부터 개념을 잡고 들어가야할 것 같다.

위 그림은 컨테이너를 쉽게 설명하는 그림으로써 배포 방식은

물리 서버에서 배포 -> 가상화된 서버에서 배포 -> 컨테이너 배포

  • 물리 서버에서 배포
    - 하나의 물리서버에서 여러개의 어플리케이션의 리소스 한계를 정의할 방법이 없어서 비효율적
  • 가상화된 서버에서 배포
    - 가상화를 통해 리소르를 좀 더 효율적으로 사용할 수 있게 됨
    - VM 간에 자유롭게 접근을 할 수 없으므로 보안성도 향상 됨
    - 가상화를 많이 할 수록 어쩔수 없는 리소스(hypervisor)
  • 컨테이너 배포
    - VM 으로 가상화를 하지 않아도 네임스페이스를 이용해 가상화 가능
    - VM의 하이퍼바이저 같은 불필요한 리소스가 없음
    - 컨테이너 이미지를 통해 쉽게 빌드하거나 배포 할 수 있으며 롤백도 쉬움

그럼 쿠버네티스는 컨테이너를 어떻게 사용하나?

예를 들어, 웹서버를 컨테이너로 동작을 하는대 도커일 경우
(실제 서버) IP:PORT -> (컨테이너) IP:PORT 로 포트포워딩을 해줘야함

위 사례 처럼 컨테이너로 웹서버를 동작했는대 API를 만들어서 동작할때 포트포워딩을 해줘야한다. 하나의 웹서버는 편하지만 여러개의 웹서버를 동작하거나 클러스터 서버일 경우 하나하나 일일히 연결 시켜줘야한다.

쿠버네티스에서는 이러한 네트워크 트래픽을 로드밸런싱하고 배포한 컨테이너가 안정적으로 이루어지게 할 수 있거나, 버전 롤백, 자동화 복구 등등 많은 기능을 제공한다. 실제 컨테이너가 동작하는 부분은 각 노드의 컨테이너 런타임에서 동작하는대 논리적으로 개발자가 쿠버네티스를 통하면 하나의 커다란 도커를 사용하는 것처럼 느껴진다.

다음편에서는 쿠버네티스의 간략한 구조를 들어간다.

출처

profile
배워서 효율적으로 써먹자

0개의 댓글