[Kubernetes Resources] Kubernetes에서 Yaml 파일을 사용하여 Pod 생성하기

IMKUNYOUNG·2024년 7월 8일
0

KCNA

목록 보기
7/56

이번 포스트에서는 Kubernetes에서 Yaml 기반의 구성 파일을 사용하여 Pod를 만드는 방법에 대해 알아보겠습니다.

Kubernetes 객체와 Yaml 파일

Kubernetes에서는 다양한 객체를 정의할 수 있습니다. 주요 객체에는 Pod, ReplicaSet, Deployment, Service 등이 있으며, 이들 모두 유사한 구조를 따릅니다. Kubernetes 정의 파일은 항상 네 가지 최상위 필드를 포함합니다:

  • apiVersion
  • kind
  • metadata
  • spec

이 네 가지 필드는 필수 필드이며, 구성 파일에 반드시 포함되어야 합니다.

Yaml 파일의 구성 요소

1. apiVersion

apiVersion은 객체를 생성하는 데 사용하는 Kubernetes API의 버전을 지정합니다. Pod를 생성할 때는 일반적으로 v1을 사용합니다. 다른 가능한 값으로는 apps/v1beta, extensions/v1beta 등이 있으며, 이는 나중에 다른 객체를 생성할 때 사용됩니다.

apiVersion: v1

2. kind

kind는 우리가 만들려는 객체의 유형을 나타냅니다. 이번 경우는 Pod를 생성할 것이므로 Pod로 설정합니다. 다른 가능한 값으로는 ReplicaSet, Deployment, Service 등이 있습니다.

kind: Pod

3. metadata

metadata는 객체에 대한 데이터를 포함하며, 이름(name), 라벨(labels) 등을 지정할 수 있습니다. 이 필드는 딕셔너리 형태로 작성됩니다.

metadata:
  name: myapp-pod
  labels:
    app: myapp

4. spec

spec은 객체를 생성할 때 추가 정보를 제공하는 섹션입니다. 객체마다 다르므로 올바른 형식을 얻기 위해 문서를 참조하는 것이 중요합니다. 여기서는 단일 컨테이너가 포함된 Pod를 생성합니다.

spec:
  containers:
  - name: myapp-container
    image: nginx

Yaml 파일 전체 구조

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: nginx

Pod 생성하기

이제 Yaml 파일을 사용하여 실제로 Pod를 생성해보겠습니다. 아래 명령어를 실행하여 Pod를 생성합니다.

kubectl create -f pod-definition.yml

Pod가 생성된 후에는 아래 명령어를 사용하여 사용 가능한 Pod 목록을 확인할 수 있습니다.

kubectl get pods

생성된 Pod에 대한 자세한 정보를 보려면 아래 명령어를 실행합니다.

kubectl describe pod myapp-pod

마치며

이번 포스트에서는 Kubernetes에서 Yaml 파일을 사용하여 Pod를 생성하는 방법에 대해 알아보았습니다. Yaml 파일의 네 가지 최상위 속성인 apiVersion, kind, metadata, spec을 이해하고 올바르게 작성하는 것이 중요합니다.

0개의 댓글