본문 바로가기

DevOps/쿠버네티스(Kubernetes)

[쿠버네티스 #1] 쿠버네티스 오브젝트와 컨트롤러

728x90

쿠버네티스는 오브젝트와 컨트롤러로 구성되는데

 

쿠버네티스 공식 설명을 보면 '의도를 담은 레코드'라고 설명을 해놓았다.

 

나는 오브젝트란 실제 일을 하는 애들 정도라고 생각한다.

 

오브젝트의 종류는 다양하게 있는데

 

Pod, Service, namespace, Volume, ConfigMap 등등

 

사용자는 이 오브젝트들을 조건에 맞게 생성하여 일을 시킨다. 라고 생각하면 될 거 같다.

 

-------------------------------

예를들면 Pod는 실제 실행되는 컨테이너를 가지고 있는 오브젝트로 

 

Python flask 웹서버 컨테이너를 가지고 있는 Pod를 생성하고 이 Pod를 외부에서 접근이 가능하게 하기 위해 Service로 묶어 특정 Service를 만든다.

 

각 Pod와 Service의 연결을 위해 Label 설정도 해주고 Pod에서 실행할 flask 웹서버 컨테이너의 조건을 지정해 주기도한다. 

-------------------------------

 

 

처음 이 예시를 접한사람, Pod와 Service가 뭔지도 모르는 상황이라면 이해할 수 없는게 당연하다. 

 

이 글은 간단하게 오브젝트와 컨트롤러에 대한 개념적인 설명의 이해를 돕기위한 글이라고 생각하면된다.

 

오브젝트와 컨트롤러에 개념적인 설명은 쿠버네티스 공식적인 설명을 참고하길 바라며 (물론 이해가 잘 안될 것이다.) 이 글은 참고용이라고 생각해주면 감사하겠다.

 

 

컨트롤러는 이러한 오브젝트를 관리하기 쉽게하는 역할을 한다.

 

컨트롤러에 종류에는 Replicaset, Deployment, Job, 등이 있다. 

 

오브젝트를 쉽게 관리한다는게 무슨말인지 잘 모를텐데 

 

 

-------------------------------

예를들면 Replicaset의 경우 Pod를 관리하는 컨트롤러이다. Pod의 개수를 지정하여 특정 수를 유지한다거나 Pod를 어떤 컨테이너 이미지의 어떤 포트로 배포할지 등에 대한 정보를 가지고 있어 이 쓰여진 정보대로 Pod를 배포하거나 삭제하거나 한다.

-------------------------------

 

이처럼 쿠버네티스는 오브젝트와 컨트롤러를 생성하여 사용한다.

 

오브젝트와 컨트롤러는 yaml이라는 파일 형식으로 내용을 적고 yaml 파일을 kubectl 명령어를 통해 쿠버네티스 클러스터에 배포함으로써 사용한다.

 

다음 세 번째 포스팅에는 쿠버네티스 object의 가장 기본인 Pod에 대해서 자세히 알아볼 것이고 Docker 이미지 등록부터시작하여 yaml파일의 작성 및 kubectl 명령어를 통한 배포 까지 해볼 생각이다.

 

 

 

반응형