프로그래밍/Kubernetes

쿠버네티스 기본 개념

장경훈 2022. 7. 20. 09:11

#쿠버네티스란?

프로그래밍을 하면서 서버 구축에 있어서 다양한 언어와 환경으로 이루어진 경우가 대부분이고 이런 환경을 컨테이너를 통해서 관리할 수 있었습니다. 하지만 너무 많은 컨테이너가 발생하게 되고 이것들을 일일이 하나하나 관리하기는 너무 힘든 일이 였는데 쿠버네티스는 이런 컨테이너들을 한번에 관리해줄수 있는 기능들을 가지고 있고 현재 많은 기업에서 도입하고 있는 기술입니다.

 

#쿠버네티스 기본 구조

쿠버네티스는 기본적으로 마스터노드와 워커노드로 구분되어 있는데 여기서 마스터 노드에서는 컨테이너들을 컨트롤 하기 위한 기능들이 들어 있고 워커 노드에는 Pod로 표기 되어 있는 세부적인 컨테이너들이 작동되고 있습니다.

 

#Master Node 기능

  • API Server: 클러스터 구성요소를 서로 통신하기 위한 API를 관리하기 위한 컴포넌트
  • Scheduler: 구동에 필요한 각각의 컨테이너에 대한 클러스터의 최적화된 배포를 수행하는 스케줄러
  • Controller-Manager: 클러스터에서 구동되는 리소스들을 유지 관리하기 위한 프로세서들의 집합
  • etcd: 클러스터 안 구성요소들에 대한 데이터 베이스

#Worker Node기능

  • kubelet: 클러스터 노드에서 API서버를 통해서 들어오는 신호를 모니터링 한 후 컨테이너가 제 기능대로 동작할 수 있도록 도와주는 기능
  • kube-proxy: 클러스터의 각각의 노드에서 실행되는 네트워크 프록시 서비스
  • Pod: 클러스터 안에서 가장 작은 단위의 객체이며 하나이상의 컨테이너를 포함하고 있는 요소