상세 컨텐츠

본문 제목

[ Kubernetes ] 쿠버네티스의 기본 개념

MLOps/Kubernetes

by teang1995 2022. 2. 16. 17:14

본문

반응형

핵심만 콕 쿠버네티스를 공부하며 정리하는 시리즈입니다.

사전 지식이 부족하고, 책 내용이 간결한 편이니 부족하거나 틀린 내용이 있으면 지적해주시면 감사하겠습니다.


1. 쿠버네티스의 기본 개념

쿠버네티스는 일반적인 운영체제와 같이 운영체제로서 지원하는 기능들을 비슷하게 제공한다.
사용자가 개별 노드를 직접 제어하지 않고 쿠버네티스라는 추상화된 레이어를 통해 클러스터를 제어할 수 있는 하드웨어 추상화 기능을 제공하고, 컨테이너의 스케쥴링, 자원할당 관리 등의 기능을 제공한다.

1.1 애완동물 vs 가축

애완동물

  • 한 마리를 이름을 붙여 세심하게 키움
  • 세심한 관리를 함
  • 키우던 애완 동물이 아프면 관리하고, 죽으면 매우 슬퍼함

가축

  • 여러 마리를 이름 없이 키움
  • 밥도 한 번에 주는 것처럼 애완동물에 비해 덜 세심한 관리
  • 한 마리가 아프거나 죽어도 크게 개의치 않고 나머지 동물들로 축사 운영

쿠버네티스는 애완동물과 가축에서 마치 가축을 보는 것처럼 서버를 바라본다.
서버마다 특별한 이름을 부여하지 않고, 몇 개의 서버가 고장나도 그 서버의 일을 나머지 서버에 맡겨도 가능하다.
이러한 성질로 인해 많은 수의 서버를 관리하기 수월해진다.  

1.2 바라는 상태(Desired State)

어떤 상태를 지정해두면 이 상태에 도달하기 위해 쿠버네티스가 특정 작업을 수행한다.
그 상태에 도달하기 위해 마이크로 컨트롤할 필요 없기 때문에 장애가 발생하여도 손쉽게 복구할 수 있다.

1.3 컨트롤러( Controller )

사용자가 바라는 상태를 선언하면 현재 상태를 바라는 상태로 변경시키는 주체.

1.4 쿠버네티스 리소스( Resource )

쿠버네티스는 모든 것이 리소스로 표현되는데, Pod, ReplicaSet,Deployment 등이 존재하고 각각의 역할이 존재한다.
가장 기본적인 리소스는 Pod로 하나 이상의 컨테이너를 가지는 쿠버네티스의 최소 실행 단위이다.
쿠버네티스에서 프로세스를 실행한다는 것은 Pod 리소스를 생성한다는 의미이다.

궁금해서 찾아본 Docker-compose 와 Pod의 차이

link

공통점

  • 모두 yaml 파일로 관리됨.
  • 각자 어떤 툴을 통해 ochestration이 가능하다. pod -> kubernetes, docker-compose -> docker swarm

차이점

  • pod는 여러 개의 컨테이너를 만들 수 있지만, docker-compose는 그러지 못 한다.
  • docker-coompose는 docker swarm 없이 사용 가능하지만, pod는 kubernetes 상에 존재하는 개념.
  • docker-compose 내의 컨테이너들은 다른 IP주소를 사용하지만, pod 내의 컨테이너들은 그렇지 않다.

1.5 선언형 커맨드( Declarative Command )

  • WHAT 에 대한 정의를 함.
  • 이와 반대되는 개념은 명령형 커맨드 ( Imperative Command )
  • sql이 대표적인 명령형 커맨드로, 어떻게 쿼리를 던질 것인가? 에 대한 명령
  • yaml, html 등이 대표적인 선언형 커맨드로, 무엇을 해야 하는 지에 대해 명령.

1.6 네임 스페이스( NameSpace)

  • 네임스페이스 리소스는 특정 네임스페이스 안에 존재. - Pod, Deployment, Service
  • 네임스페이스 영역과 관계 없이 클러스터 레벨에 존재하는 리소스도 있음. - Node, PersistentVolume, StorageClass 등

1.7 라벨 & 셀렉터( Label & Selector )

  • 이해 안 됨. 보류1.8 서비스 탐색
  • 사용자, pod는 Service Endpoint를 이용해 다른 Pod와 통신하는데, 이를 서비스 탐색(Dervice Discovery)라고 함.
  • 쿠버네티스는 DNS 기바의 서비스 탐색을 지원하므로 도메인 주소를 기반으로 서비스에 접근 가능함.
  • 서비스 탐색 기능은 Service 라는 리소스를 사용하여 제공함.

1.9 설정 관리

  • credential, config 등을 Secret, ConfigMap 이라는 리소스를 이용해 관리할 수 있음.

'MLOps > Kubernetes' 카테고리의 다른 글

[ Kubernetes ] 쿠버네티스란?  (0) 2022.02.16

관련글 더보기

댓글 영역