Cloud

[Cloud] 쿠버네티스(Kubernetes) 배포 실습 1장 (with. Pod, ReplicaSet, Deployment, Job, CronJob)

yongyongcoding 2026. 1. 12. 18:08

오늘은 쿠버네티스를 활용해 기본 리소스인 Pod와 ReplicaSet, Deployment의 배포 과정을 담아보려고한다.

단일 Pod의 배포, Deploy배포, Service 배포 등 yaml파일 방식과 CLI 방식으로 배포해보고,

배포된 얘들을 확인하며 동작의 흐름을 이해해보자.

 

 

Part0: Namespace 생성

배포 실습을 하기 전에 우선 연습용 namespace를 만들어서 진행할 예정이다.

kubectl create namespace {네임스페이스 명} 

위의 명령어를 통해 만들면 된다.

나의 경우 이니셜을 붙여 kym-test1이라고 붙였다.

 

 

Part1: Pod배포

※ 단일 pod으 경우에는 클러스터가 종료되면 함께 종료되는 특징이 있다.

1-1. 일반 Pod 배포  (yaml파일 버전 / CLI 버전)

 

1-2. 환경변수를 활용해 명령어를 실행하는 Pod 배포  (yaml파일 버전)

 

1-2. 다중 컨테이너를 갖는 Pod 배포  (yaml파일 버전)

 

 

 

Part2: ReplicaSet

2-1. 일반 ReplicaSet 배포 (yaml파일 버전)

 

2-2. 배포된 ReplicaSet의 Scale Up/Down(CLI 버전) 

방법1 : scale 명령어

방법2 : edit 명령어

 

 

Part3: Deployment

3-1. 일반 Deployment 배포 (yaml파일 버전)

 

3-2. 일반 Deployemtn 배포 (CLI 버전)

 

 

 

Part4: Job

job은 우리가 일반적으로 알고 있는 batch와 같은 동작이다.

일반적인 Pod와는 달리 정해진 동작을 수행한 뒤 Completed상태가 되어 종료되는 Pod를 생성한다.

일회용성으로 사용되며, 설정을 통해 Running상태를 유지하게 만들수도 있다.

CLI 명령어를 통해 Job을 만들어보겠다.

 

4-1. 아래서 생성한 job은 date를 출력하는 동작을 수행하는 job이다.

job에 의해 생성된 pod의 로그를 확인해보면 알 수 있다.

완료된 job의 pod는 completed상태가 된다.

 

 

4-2. 아래의 job은 특정 메세지를 echo하는 job이다.

 

4-3. 다양한 설정을 통해 다중Job / 병렬Job을 만들 수 있다. 

completion을 통해 3개가 완료되어야하는 설정 (다중 job)

parallelism을 통해 3개가 병렬로 실행되도록 하는 설정 (병렬 job)

 

 

 

 

 

Part5: CronJob

CronJob은 우리가 일반적으로 알고 있는 Scheduler이다.

정해진 시간에 특정 Job을 생성해 동작을 수행하도록 만드는 리소스이다.

 

5-1. 1분마다 날짜 출력하는 job을 생성

정확히 1분마다 Job이 쌓이는 것을 알 수 있다.

successfuljobHistroy 개수 설정을 통해 job 생성을 조절할 수 있다. 

 

 

5-2. 1분마다 10초만 Running 상태를 유지하는 job 생성

 

 

5-3. 1분마다 특정 문장을 echo하는 job 생성

 

5-4. 1분마다 20초만 Running상태를 유지하며 생성 시 start / 종료 시 end를 출력하는 job 생성

 

 

 

 

 

 

이렇게 해서 쿠버네티스의 기본 리소스들의 배포 과정을 알아보았다.

이제 기본 리소스를 만들었으니 외부와 통신할 수 있는 네트워크 리소스를 2장에 이어서 알아보도록 하겠다.