YAML 파일을 이용한 쿠버네티스 Pod 생성 방법

이번에는 Kubernetes의 리소스를 정의하는 YAML 형식의 파일 및 kubectl apply 명령어를 사용하여 Pod 생성 실습을 진행하겠습니다.


Pod 생성 YAML 확인 및 생성


  • 리소스의 API 버전을 지정합니다. 이 예제에서는 v1 버전의 API를 사용합니다.
apiVersion: v1


  • 생성하려는 리소스의 종류를 지정합니다. 이 경우에는 Pod를 생성하므로 "Pod"로 지정합니다.

kind: Pod


  • Pod의 메타데이터를 정의합니다. "name" 필드에는 Pod의 이름을 지정합니다. 이 예제에서는 "nginx-pod"라는 이름을 사용합니다.

metadata:
  name: nginx-pod


  • Pod의 스펙을 정의합니다. "containers" 필드 아래에 컨테이너의 정보를 정의합니다.
  • "name" 필드에는 컨테이너의 이름을 지정합니다. 이 예제에서는 "nginx"라는 이름을 사용합니다.
  • "image" 필드에는 컨테이너가 사용할 이미지를 지정합니다. 이 예제에서는 "nginx:latest" 이미지를 사용합니다.

spec:
  containers: 
    - name: nginx 
      image: nginx:latest


이렇게 정의된 YAML 파일은 kubectl apply 명령어를 사용하여 Kubernetes 클러스터에 해당 리소스를 생성하게 됩니다. 

그러면 이제 실제로 Pod를 만들어 보겠습니다. 아래의 명령어를 터미널에 입력합니다.

kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
spec:
  containers:
    - name: nginx
      image: nginx:latest
EOF


위 명령어는 YAML 내용을 Pod 생성 명령어로 직접 입력하는 방법입니다. 여기서 <<EOF EOF 사이에는 YAML 내용이 위치하며, kubectl apply -f - 명령어는 표준 입력으로부터 YAML 내용을 읽어와 Pod를 생성합니다.







생성된 Pod 확인


kubectl get pods 명령은 현재 클러스터 내에서 실행 중인 Pod의 목록을 조회합니다. 결과에서 각각의 Pod에 대한 정보를 확인할 수 있습니다.



  • NAME : Pod의 이름
  • READY : 현재 Pod 내의 컨테이너 중 몇 개가 준비 상태인지 (총 준비된 컨테이너 수 / 총 컨테이너 수)
  • STATUS : Pod의 상태 (예: Running, Pending, Completed 등)
  • RESTARTS : Pod 내의 컨테이너가 재시작한 횟수
  • AGE : Pod가 생성된 후 경과한 시간

즉, 결과로 보여지는 nginx-pod 는 이름이며, 준비 상태는 1/1 로 모든 컨테이너가 준비되었고, 상태는 Running 으로 실행 중임을 나타냅니다.


< 글: 와탭랩스 쿠버네티스개발그룹 인턴 김다은님 >

댓글

이 블로그의 인기 게시물

WhaTap Kubernetes Day 2024

[기사] 와탭랩스, 쿠버네티스 통합 모니터링으로 운영자 업무 효율 극대화