Infra/Kubernetes

[Kubernetes 입문] 3-2. deployment를 이용해 컨테이너 실행

에드박 2023. 1. 4. 22:16

쿠버네티스를 이용한 컨테이너 실행 방법은 크게 두 가지

  • kubectl run 명령으로 직접 컨테이너 실행
  • 컨테이너 실행 세부 내용을 담은 YAML 형식의 템플릿으로 컨테이너 실행 (deployment.yaml 를 이용)

kubectl run 으로 컨테이너 실행

kubectl run으로 파드를 실행할 때 기본 컨트롤러는 디플로이먼트(deployment)

# nginx-app 이라는 이름의 deployment 를 사용해 nginx 컨테이너 실행
$ kubectl create deployment nginx-app --image nginx --port=80

# deployment 상태 확인
$ kubectl get deployments

  • NAME : 클러스터에 배포한 deployment 이름
  • READY : 사용자가 최종 배포한 파드 개수와 디플로이먼트를 이용해 현재 클러스터에 실제로 동작시킨 파드 개수. 실행중인 수/원하는 개수 형태. 배포 전략 설정에 따라 실행 중인 파드 수가 원하는 파드 수보다 많아질 수 있음
  • UP-TO-DATE : deployment 설정에 정의한 대로 동작 중인 신규 파드 개수
  • AVAILABLE : 서비스 가능한 파드 개수
  • AGE : deployment 생성 후 지난 시간
# deployment 를 이용해 실행 중인 파드 개수 늘리기
$ kubectl scale deploy nginx-app --replicas=2


템플릿(yaml)로 컨테이너 실행하기

디플로이먼트 성정이 담긴 템플릿(yaml 파일)로 컨테이너를 실행

# nginx-app.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-app
  labels:
    app: nginx-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-app
  template:
    metadata:
      labels:
        app: nginx-app
    spec:
      containers:
      - name: nginx-app
        image: nginx
        ports:
        - containerPort: 80

해당 파일이 있는 디렉터리에 위치하여 아래 명령어를 실행

$ kubectl apply -f nginx-app.yaml

 

아래와 같은 에러가 나온다면 yaml 들여쓰기 등 문법이 잘못된 곳이 있는지 확인