개발

쿠버네티스 시작하기(반드시 DOCKER를 선행 해야 하는가?)

쪼쪼랩 2023. 1. 1. 15:16
반응형

쿠버네티스는 무엇이죠? 컨테이너들이 잘 운영되고 문제가 생기면 도와주고  관리자의 역할.쉽게 예를 들어 설명하면 아파트를 관리해주는 관리소장이나 아이들을 관리해주는 선생님을 예로 들 수 있겠다.

 

DOCKER가 뭔가요? 컨테이너가 무엇인지 알아야 이해하기가 쉽다. 컨테이너란, 내가 실행시키려는 어플리케이션을 구동할 수 있는 환경까지 감싸서 (컨테이너에 넣어서) 언제 어디서나 쉽게 동작 될 수 있도록 만든 기술을 의미한다.  개발을 하기위해 특정 프로그램을 설치할 때를 떠올려보면 이해가 쉽다. 프로그램을 단순히 다운 받는 것 뿐만 아니라 필요한 위치에 설치해야하며  PATH 설정, 또 종속되는 패키지 설정까지 하나라도 잘못되면 이상한 곳에서 에러가 나기 마련이었다. 컨테이너만 있으면 이런 힘든 과정은 GOOD BYE! 컨테이너 환경을 묶어서 배포한 이미지를 다운받으면 쉽게 실행이 되기때문에 설치에 필요한  과정과 시간이 줄어들어 편리하게 접근이 가능하게 된다. 컨테이너를 사용할때 쉽게 다운로드 할 수있고, 공유, 실행을 할때 필요한 도구가 컨테이너 런타임(CONTAINER RUNTIME)이다. 이 컨테이너 런타임에서 가장 유명한 것이 DOCKER이다. ( DOCKER 가 아닌 다른 컨테이너 런타임들도 docker로 만든 컨테이너를 사용 할 수 있음.) 

컨테이너 환경에서 좀 더 많은 어플리케이션을 동작 시킬 수 있구나!

쿠버네티스를 배우기 위해  docker를 먼저 배워야하나요?  아니다. 쿠버네티스는 위에서도 말했듯 container를 관리하는 도구이다.( 컨테이너 런타임을 통해 컨테이너를 다루는 도구) 어렵게 말하면 Container Orchestration(컨테이너 오케스트레이션)이라고 하며,  여러 서버에  컨테이너를 분산해서 배치, 교체(문제가 생긴 컨테이너), 컨테이너가 사용할 비밀번호나 환경설정 관리 등을 해준다.  docker 그대로를 사용하면 되고 따로 만들어 줄 필요는 없다고 하니 직접 실습해가며 몸으로 체험해 보겠다. 찾아보면, docker는  package를 만들어 주는것과 유사하다고 하는데, 이미 우리는 rpm, yum 등과같은 명령어로 패키지를 설치할 수 있으니  docker는 좀더 나중에 배우도록 하겠다. 굳이 선수과정으로 반드시 배워야 한다는 것은 아니라는게 전문가들의 입장이다.( 나는 전문가가 아니며, 인터넷 서핑과 책을 통해 익히게 되었다. ) 

쿠버네티스는 누가 만들었나요? 원래 구글에 의해 설계되었고 현재 리눅스 재단에 의해 관리되고 있다.구글에서 자체적으로 운영하던 BORG 라는 시스템이 있었는데, could native(CNCF)에 기부(?)를 하게되었다. CNCF는 쿠버네티스를 기초 기술로 선언하고 현재는 운영되고 잘 관리되고 있다.  vendor의 종속성이 없다는 것이 가장 큰 특징이다. 개발업무를 하다보면 이것이 얼마나 큰 장점인지 인지 할 것이다. 왜냐면 특정 vendor에 종속적이라면 비용을 계속 지불 해야하거나 그  vendor사에 종속적일 수 밖에 없기 때문이다.(위키백과참고) 

쿠버네티스 배포 종류

관리형 실제로 사용자가 특별히 관리해야할 일은 없고, 배포만 하면 자동으로 관리됨.
애플리케이션만 배포.
AWS
google cloud platform
Azure
설치형  설치할 수 있도록 이미 패키지 화. 리눅스 커널의 다양한 요구사항의 패키지들을 모아서 만든 것들이 여러 배포판들. 필요한 쿠퍼네티스에다가 필요한 내용들을 더 많이 붙여서 편리하게 쓸 수 있도록 이미 하나의 패키지를 만들었다.고 생각하면 된다.  RANCHER
OPENSHIFT
구성형 필요한 클라우드 환경 내에서 원하는 형태를 가지고 싶은데, 관리형(클라우드 업체)에서 제공하는 걸 쓰기 좀 그렇다. (요구사항에 맞지 않음 ). 설치형도 이미 구성이 되어서  나오기때문에 내 요구조건과 맞지 않을떄.(자유롭게 구성불가)

kubeadm
kubespray
kops

 

참고자료

https://ko.wikipedia.org/wiki/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4

 

쿠버네티스 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 쿠버네티스(Kubernetes, 쿠베르네테스, "K8s"[4])는 컨테이너화된 애플리케이션의 자동 디플로이, 스케일링 등을 제공하는 관리시스템으로, 오픈 소스 기반이다.[5]

ko.wikipedia.org

https://www.samsungsds.com/kr/insights/220222_kubernetes1.html

 

쿠버네티스 알아보기 1편: 쿠버네티스와 컨테이너, 도커에 대한 기본 개념

요즘 IT 생태계에 관심이 많으신 분들이라면 쿠버네티스라는 단어를 들어 보셨을 텐데요. 쿠버네티스에 대해 개발자들의 관심이 높아지고 있고, 여러 대기업에서 새로운 시스템을 쿠버네티스를

www.samsungsds.com

 

반응형