Cloud/Docker & Kubernetes

쿠버네티스 파드 생성

DGO 2023. 4. 20. 01:45

파드(Pod)

 

쿠버네티스에서 실행되는 최소 단위, 즉 웹 서비스를 구동하는 데 필요한 최소 단위이며 독립적인 공간과 사용 가능한 IP를 가지고 있다. 하나의 파드는 1개 이상의 컨테이너를 갖고 있기 때문에 여러 기능을 묶어 하나의 목적으로 사용할 수도 있다.

 

파드를 생성하는 방법에는 여러가지가 존재한다.

 

run으로 단일 파드 생성

kubectl run <pod name> --image=<image name>

 

 

create deplyment로 파드를 생성

kubectl create deployment <pod name> --image=<image name>

 

두 방법 모두 결과는 동일하지만 디플로이먼트로 파드를 생성하면 관리 그룹 내에서 파드를 생성 할 수 있다.

 

 

 

레플리카셋으로 파드 수 관리

 

서비스를 하려면 다수의 파드가 필요한데, 이를 하나씩 생성한다면 비효율적이므로 쿠버네티스에서는 다수의 파드를 만드는 레플리카셋 오브젝트를 제공한다.

 

scale  명령어를 사용하여 다수의 파드를 생성하며 디플로이먼트로 생성된 파드만 적용 가능하다.

 

 

 

스펙을 지정해 오브젝트 생성

 

deployment를 생성하면서 한번에 여러 개의 파드를 생성하려면 필요한 내용을 YAML 문법으로 작성한 파일이 필요하다

이때 작성하는 파일을 오브젝트 스펙이라고 한다.

 

ex)

nginx_spec.yaml

apiVersion: apps/v1 # API 버전 (kubectl api-versions 명령으로 확인 가능)
kind: Deployment # 오브젝트 종류
metadata:
  name: nginx_spec # 디플로이먼트의 이름
  labels:
    app: nginx # 디플로이먼트의 레이블
spec:
  replicas: 3 # 몇 개의 파드를 생성할지 결정
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx_spec
        image: nginx # 사용되는 이미지

 

 

스펙을 지정해 오브젝트를 생성할 때 create 명령어로도 가능하지만 변경 사항을 쉽게 적용할 수 있는 apply 명령을 사용 하는 것이 좋음.

kubectl apply -f <file> # -f 로 file 지정 가능

위의 YAML 파일에서 replicas : 6으로 변경하고 apply로 재적용 하면 변경 사항이 적용되는 것을 볼 수 있음.

 

delete deployment로 파드 삭제

 

deployment에 속한 파드들은 replicas가 개수를 맞추려고 동작하기 때문에 파드 개별 삭제를 하면 다시 생성되므로(자동 복구 기술 : 셀프 힐링)  delete deployment로 파드가 속한 deployment 삭제를 진행하여야 한다

kubectl delete deployment <deployment name>

위에서 생성한 deployment 삭제

 

'Cloud > Docker & Kubernetes' 카테고리의 다른 글

Dockerfile로 이미지 생성  (0) 2023.04.21
쿠버네티스 노드 유지보수  (0) 2023.04.20
쿠버네티스의 구성 요소  (0) 2023.04.19
쿠버네티스 클러스터 구성  (1) 2023.04.17
도커로 컨테이너 다루기  (0) 2023.04.16