Docker, Kubernetes

[Kubernetes] 쿠버네티스 기본 오브젝트 4개 (간단한 설명)

15호의 개발자 2021. 12. 8. 17:26
반응형

[Kubernetes] 쿠버네티스 기본 오브젝트 네 가지

 


 

오브젝트(Object)란?

쿠버네티스의 오브젝트는 쿠버네티스 시스템에서 영구한 객체이다. 즉, 오브젝트가 생성되면 쿠버네티스는 이 상태를 영구히 유지하기 위해 작동한다.

쿠버네티스의 오브젝트는 spec(스펙, 명세)과 status(상태) 등의 값을 가지는데, 여기에는 오브젝트를 생성한 의도나 오브젝트를 관리할 때 원하는 상태 등을 설정한다.

 

 

 

쿠버네티스의 기본 오브젝트(Object) 네 가지

  1. 파드 (Pod) - 쿠버네티스에서 실행되는 최소 단위이다. 독립적인 공간과 IP를 가진다.
  2. 네임스페이스 (Namespace) - 쿠버네티스 클러스터에서 사용되는 리소소들을 구분해서 관리하는 그룹이다.
  3. 볼륨 (Volume) - 파드가 사라지더라고 저장/보존이 가능하며 파드에서 사용할 수 있는 디렉터리를 제공한다.
  4. 서비스 (Service) - 파드는 유동적이기 때문에 접속 정보가 고정되지 않으므로, 파드 접속을 안정적으로 유지하기 위한 기능이다.

 

위의 기본 오브젝트 네 가지만으로도 쿠버네티스를 사용할 수 있지만 사용하다보면 한계를 마주칠 때가 올 것이다. 그럴 때는 기본 오브젝트 외에 아래의 오브젝트를 이용하면 된다. 

  • 디플로이먼트 (Deployment)
  • 데몬셋 (DaemonSet)
  • 컨피그맵 (ConfigMap)
  • 레플리카셋 (ReplicaSet)
  • PV (PersistentVolume)
  • PVC (PersistentVolumeClaim)
  • 스테이트풀셋 (StatefulSet)

 

 

 

쿠버네티스의 기본 오브젝트 간단한 설명

 

1. 파드 (Pod, 포드)

파드는 쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위이다. 이는 쿠버네티스 애플리케이션의 최소 단위, 즉, 웹 서비스를 구동하는 데 필요한 최소 단위이다. 독립적인 공간과 IP를 가지며, 이때 IP는 랜덤하게 지정된고 restart 할 때마다 변한다.

 

파드에 대한 개념이 잘 와닿지 않는다면, 쿠버네티스에서의 pod는 리눅스에서의 container와 같은 개념이라고 생각하면 된다. 단, 완전히 같은 개념은 아니므로 이는 초보자에게만 추천하는 방법이다. 이론적으로는 한 개의 파드 안에 여러 개의 컨테이너가 들어갈 수 있지만, 대부분 한 파드에 한 컨테이너(1 pod 1 container)로만 관리하기 때문에 pod를 container와 동일시해도 큰 문제는 없다는 뜻이다. pod가 container를 싣고 가서 일을 한다고 생각하자.

 

실무 환경처럼 pod가 매우 많은 경우 pod를 관리하기 위해 쿠버네티스를 이용한다. 서버 트래픽이 갑자기 폭발하는 경우에 pod 생성을 늘려서 서버가 다운되지 않게 도와주는 것이 바로 쿠버네티스의 역할이다.

 

 

 

2. 네임스페이스 (Namespace)

네임스페이스는 쿠버네티스 클러스터에서 사용되는 리소소들을 구분해 관리하는 그룹이다. pod와 service 등은 네임스페이스별로 생성 및 관리될 수 있으며, 네임스페이스별로 사용자 접근 권한을 다르게 설정할 수도 있다.

 

네임스페이스의 개념을 잘 모르겠다면, 일종의 패키지명과 같다고 생각하면 된다. 그렇기 때문에 하나의 클러스터 내에 개발·운영·테스트 환경이 있을 때, 클러스터를 개발·운영·테스트 3개의 네임스페이스로 나눠서 운영할 수 있다.

 

 

 

3. 볼륨 (Volume)

쿠버네티스에서 파드는 고정된 개념이 아니며 끊임없이 사라지고 생성된다. 그렇기 때문에 파드는 디렉터리도 임시로 사용한다. 파드가 사라지더라도 사용할 수 있는 디렉터리는 볼륨 오브젝트를 통해 생성하여 사용할 수 있다.

 

 

 

4. 서비스 (Service)


쿠버네티스의 서비스란 파드의 집합을 의미한다. 서비스에 대한 자세한 설명은 아래의 링크에 잘 정리해두었으니 참고 바란다.

 

쿠버네티스의 서비스 종류 (4개)

 

[Kubernetes] 쿠버네티스의 서비스 종류 (4가지)

[Kubernetes] 쿠버네티스의 서비스 종류 (4가지) Kubernetes의 Service란? 쿠버네티스의 Service란 Pod의 집합을 의미한다. Pod는 클러스터 내에서 유동적이므로 접속 정보가 일정하지 않다. 따라서 Pod 접

unit-15.tistory.com

 

 

+ 디플로이먼트 (Deployment)

디플로이먼트란 레플리카셋(ReplicaSet)만큼의 파드를 포함하는 개념이다. 파드를 3개 만드는 것보다 파드-레플리카 3개인 디플로이먼트가 유지보수에 더 좋기 때문에 디플로이먼트라는 오브젝트를 이용한다. 서비스 업데이트를 예로 들자면, 파드1부터 순차적으로 업데이트하면 무중단 서비스 가능해진다. 달리는 자동차의 바퀴를 교체하는 일을 해야한다면 디플로이먼트를 이용해보자.

 

 

 

 

(출처: 책 『컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커』)

 

반응형