카테고리 없음

[kubernetes] Pods with YAML

broook 2023. 4. 14. 10:49

k8s에서는  yaml 파일을 이용해서 pod를 생성합니다.

 

yaml 파일에는 아래 4개의 상위 필드를 항상 포함해야 합니다. 이것들이 루트속성의 필드들이고 yaml 파일의 골격입니다.

 

하나씩 살펴보며 자세히 알아보겠습니다.


apiVersion : v1

사용할 apiVersion을 적는 부분입니다. 생성하려는 object에 따라 사용해야되는 apiVersion이 정해져 있으므로 확인한다음 생성해야 합니다 예를들어 Service는v1 Deployment는 apps/v1를 사용해야 합니다.


kind : Pod

어떤 객체를 생성할 것인지 적는부분 ex) pod, replicaset, service 등등.

 


metadata 

     name: myapp-pod

     labels:

          app: myapp

객체에 대한 데이터 ex) name, lable 등등

단 dictionary 형태로 적어야 하며 공백으로 부모 자식 관계를 구분합니다. 공백이 얼마나 되는지는 상관없고 같은 형제끼리는 같은 공백을 가지는게 중요합니다. 아래에서는 name과 labels 이 형제이기 때문에 같은 세로선상에 존재하며 app은 labels의 자식이기 때문에 더 많은 공백을 가져야 합니다


 

spec :

     containers:

      -  name: nginx-container

          image: nginx

우리가 생성하려는 개체에 대한 정보가 들어가야 합니다. 어떤 이미지 파일을 사용할 건지 container의 이름은 뭘로 할 것인지와 같은 정보들을 적어주면 됩니다.


 

pod-definition.yml

완성된 yaml 파일의 모습은 위 사진과 같으며 이를 이용해 pod를 생성하려면 다음과 같은 명령어를 사용하면 됩니다.

 

생성 : kubectl create -f pod-definition.yml 

확인 : kubectl get pods

상세정보 : kubectl describe pod myapp-pod