k8s는 pod, replicaset, deployment, service 같은 객체를 생성하기 위해 YAML 파일을 사용
이번 강의에서는 yaml로 pod생성하는 예시를 살펴볼 것
sample yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
type: front-end
spec:
containers:
- name: nginx-container
image: nginx
- k8s yaml 파일은 항상 최상위에 4가지 필드를 필수적으로 가짐
- apiVersion
- kind
- metadata
- spec
1. apiVersion
- 객체 생성을 위해 사용하는 k8s api버전을 뜻함
- 아래처럼 다른 객체 생성을 위해 다른 값을 입력할 수 있음
kind | apiVersion |
---|
Pod | v1 |
Service | v1 |
ReplicaSet | apps/v1 |
Deployment | apps/v1 |
2. kind
- 생성하려는 객체의 유형
- 유형은 pod, replicaset, deployment, service 가 있음
- 객체의 메타데이터를 명시
- name, labels 등등
- name : String
- labels : dict(key : value)
- 레이블링하여 필터링 할 수 있음 → 관리 편해짐
- 어떤 레이블이든 원하는대로 작성 가능
- dict 형식으로 작성해야함 → 들여쓰기 필수
- 속성이 부모-자식 관계일 경우 들여쓰기 해야함
4. spec
- 파드에 실제 포함시킬 컨테이너, 이미지 정보
- 공식 문서를 참조하는 것이 작성에 큰 도움
- dict 형식으로 작성
- containers → list / array
- 1 pod : N container 가능하기 때문
yaml 작성 후 pod 생성 방법
kubectl create -f pod-definition.yml
pod 생성 확인 방법
kubectl get pods
pod 상세 정보 확인
생성 시간, 레이블, 컨테이너, 파드 이벤트 확인 가능
kubectl describe pod [파드이름]