땃쥐네

[Kubernetes] 파드(Pod) 생성 및 목록 조회 본문

DevOps/Kubernetes

[Kubernetes] 파드(Pod) 생성 및 목록 조회

ttasjwi 2025. 2. 26. 16:44

파드를 생성하는 방법

파드를 생성하는 방법은 크게 두 가지로 나뉘어진다.

 

하나는 CLI 명령을 통해 직접 파드 생성 명령을 기술하는 방식이고,

다른 하나는 파일(보통 yaml 파일)을 통해 파드에 대한 명세를 기술하고 이 파일을 통해 파드를 실행시키는 방법이다.

 

그러나 보통 파드 하나를 실행시키기 위해 설정해야하는 값들은 많고 이를 CLI 명령을 통해 매번 실행, 관리하는 것은 유지보수 관점에서 좋지 않으므로 재사용의 편의를 위해, 파일을 통해 파드를 생성한다.


매니페스트 파일(Manifest File)

위에서 파드는 파일을 통해 생성한다고 말했는데, 파드뿐만 아니라 쿠버네티스의 다양한 리소스(파드, 서비스, 디플로이먼트, 볼륨, ...) 등을 생성할 때도 파일을 사용해서 생성한다.

 

이런 리소스들을 생성하는 파일을 쿠버네티스에서는 '매니페스트 파일(Manifest File)' 이라고 한다.

매니페스트 파일은 보통 yaml 파일로 작성되어 관리된다.(다른 형식으로도 가능하긴 한데 주류는 yaml 이다.)

 

파드와 같은 리소스를 정의하는 것은 CLI 로도 가능하지만, 매번 명령어를 수동으로 기입하는 것은 번거롭다.

그래서 보통 쿠버네티스 리소스들을 매니페스트 파일을 통해 문서화해서 관리한다.

 

이렇게 문서화하고 버전 제어 시스템(Git)에 저장하여 버전관리할 수도 있다는 장점도 있다.


매니페스트 파일 작성

 

쿠버네티스의 Pods 공식 문서에서는 파드에 대한 매니페스트 파일을 어떻게 기술하는 지 설명되어 있다.

공식 홈페이지에서는 nginx 파드를 띄우는 것을 예시로 들어 설명하고 있는데, 이를 변형해서 tomcat 파드를 실행해보고자 한다.

 

 

tomcat-pod.yaml 이라는 파일을 생성하고, 다음 yaml 파일을 작성한다.

apiVersion: v1 # Pod를 생성할 때는 v1이라고 기재한다. (공식 문서)
kind: Pod # Pod를 생성한다고 명시

# 파드의 기본 정보
metadata:
  name: tomcat-pod # Pod 의 이름

# 파드의 상세 정보
spec:
  containers:
    - name: tomcat-container # 생성할 컨테이너의 이름
      image: tomcat:11.0.4 # 컨테이너를 생성할 때 사용할 Docker 이미지
      ports:
        - containerPort: 8080 # 해당 컨테이너가 어떤 포트를 사용하는 지 명시적으로 표현(그냥 문서화 역할. 가독성)

 

전체적인 골격은 정해져있고, 몇 가지 우리 입맛에 맞게만 변형해서 쓰면 된다.

 

여기서 주의할 점은 spec.ports.containerPort 부분인데, 이 값을 8080으로 지정했으나 이 값에 의해 톰캣 컨테이너가 실행되는 것이 아니다.

 

tomcat 컨테이너는 기본적인 설정으로 8080 포트에서 실행되도록 이미지가 설계되어 있고, 그에 따라서 8080 포트에서 실행되는 것이다.

 

spec.ports.containerPort 는 그 자체로 톰캣이 실행되는 포트 번호를 지정하는 것이 아니며, 단순히 컨테이너가 어떤 포트를 사용하는 지 명시적으로 나타내기 위한 문서화용이다.


파드 실행, 목록 조회

kubectl apply -f tomcat-pod.yaml

 

위와 같이 파드에 대한 매니페스트 파일을 작성하고, 해당 매니페스트 파일이 위치한 경로에서 위 명령을 실행한다.

kubectl get pod # 파드 목록 조회
kubectl get pods # 파드 목록 조회

 

그리고, kubectl get pod (또는 pods) 명령을 통해 파드 목록을 조회할 수 있다.

 

 

정상적으로 파드가 생성된 것을 볼 수 있다.

 

NAME 은 그 파드의 이름,

READY 는 (파드 내 준비 완료된 컨테이너 수)/(파드 내 총 컨테이너 수)

STATUS 는 파드의 상태(Running 은 정상적으로 실행 중을 의미한다.)

RESTARTS 는 재시작한 횟수

AGE 는 파드가 실행되고 얼마의 시간이 흘렀는 지를 의미한다.


배포된 서버 접속 시도

 

파드를 8080 포트에서 실행했으니,

우리 로컬 컴퓨터의 8080 포트로 접속을 실행해봐야지! 하고 localhost:8080 으로 접속을 시도하면 위와 같이 접속에 실패한다.

 

이 부분은 왜 그런지 이어지는 글에서 다시 다뤄볼 것이다. 

 

 

Comments