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 으로 실행 중임을 나타냅니다.
< 글: 와탭랩스 쿠버네티스개발그룹 인턴 김다은님 >
댓글
댓글 쓰기