본문 바로가기
Kubernetes

[kubernetes] Basic: Pod

by 좀빅 2020. 6. 2.

Pod란?

=> 쿠버네티스에서 사용하는 가장 작은 배포 단위, 컨테이너를 한개 혹은 여러개를 포함

 

컨테이너를 파드로 묶어 배포하면 얻는 장점?

=> Pod내의 컨테이너는 IP, Port, Volume을 공유하는 것이 가능

 

공유하는게 뭐 어쨋다는거여?

분리된 애플리케이션에 대한 로그나 혹은 데이터를 손쉽게 공유할 수 있도록 구성이 가능


YAML을 이용한 pod-single container 구성

---
kind: Pod
apiVersion: v1
metadata:
  name: singlepod
spec:
  containers:
  - name: nginx
    image: nginx:1.7.9
    ports:
    - containerPort: 8080

 

kind:리소스 종류를 정의하는 부분으로 Pod를 명시

apiVersion: yaml을 실행하기 위한 kubernetes API 버전을 명시, 리소스마다 다른 API를 호출

metadata: Label 뒤 설명 혹은 리소스의 이름등 각종 메타데이터 작성

spec: 리소스에 대한 상세 스펙을 정의 ( 컨테이너명, 컨테이너 이미지, 포트 정보 등등...)

 

Pod 생성 및 기본 정보 확인

#pod-multi.yaml이라는 파일을 가지고 pod를 생성한다.
$ kubectl create -f singlepod.yaml

#생성된 Pod에 대한 간단한 정보를 정보를 볼수 있다.
$ kubectl get pod -o wide

#생성된 파드에 대한 정보 및 이벤트 정보를 볼 수 있다.
$ kubectl describe pod singlepod

YAML을 이용한 pod-Multi container 구성

---
kind: Pod
apiVersion: v1
metadata:
  name: multipod
spec:
  containers:
  - name: nginx-container
    image: nginx:1.14
    ports:
    - containerPort: 80
      protocol: TCP

  - name: centos-container
    image: centos:7
    command: ["/bin/sh", "-c", "while : ;do curl http://localhost:80/; sleep 3; done"]

 

Pod 생성 및 기본 정보 확인 (*Pod-Single과 동일하다.)

$ kubectl create -f multipod.yaml

$ kubectl get pod multipod -o wide 

$ kubectl describe pod multipod

각 커매드를 가지고 결과를 손쉽게 조회해 볼 수가 있다.


$ kubectl delete pod singlepod multipod

#혹은 아래 커맨드로 Pod를 전체를 지울 수도 있다.
$ kubectl delete pod --all

 

'Kubernetes' 카테고리의 다른 글

[kubernetes] Basic: Node Selector  (0) 2020.06.12
[kubernetes] Basic: Pod Label  (0) 2020.06.04

댓글