본문 바로가기
공부/kubernetes

kubectl 컨테이너 실행

by CITTA 2023. 2. 27.
728x90
반응형
  1. run, create, apply 비교
  • run과 create : run은 pod1개만 생성/관리, create는 그룹 내 pod 1개를 생성 관
  • create와 apply: create deployment yaml에서 replicas 지정 후 생성하면 추후 수정이 불가, 반면 apply deployment로 생성한 경우 일관성 문제에 대한 경고가 뜨지만 변경 됨

run create apply

명령 실행 제한적 가능 불가
파일 실행 불가 가능 가능
변경 가능 불가 불가 가능
실행 편의성 매우 좋음 매우 좋음 좋음
기능 유지 제한적 지원 다양하게 지원
  1. create로 컨테이너 실행
## create 명령어로 nginx 컨테이너 실행
$ kubectl create deployment nginx-app --image nginx --port=80
deployment.apps/nginx-app created

## pod 확인
$ kubectl get pods
NAME                        READY   STATUS    RESTARTS   AGE
nginx-app-fdb47c5fb-nq2kp   1/1     Running   0          37s

## deployment 확인
$ kubectl get deployments
NAME        READY   UP-TO-DATE   AVAILABLE   AGE
nginx-app   1/1     1            1           60s
  • deployments 구성
  • name: 배포한 deployment 이름
  • ready: 최종 배포한 pod 수와 현재 동작중인 수, 배포 전략에 따라 다를 수 있음
  • up-to-date: 설정에 정의한 대로 동작중인 신규 pod 수
  • available: 서비스 가능한 pod 수
  • age: 디플로이먼트 생성 후 지난 시간
  1. test pod replicas test
## scale deploy 명령을 통해 변경
$ kubectl scale deploy nginx-app --replicas=2
deployment.apps/nginx-app scaled

## 변경 결과 확인
$ kubectl get deployments
NAME        READY   UP-TO-DATE   AVAILABLE   AGE
nginx-app   2/2     2            2           9m22s

$ kubectl get pod
NAME                        READY   STATUS    RESTARTS   AGE
nginx-app-fdb47c5fb-dc7w9   1/1     Running   0          65s
nginx-app-fdb47c5fb-nq2kp   1/1     Running   0          9m34s
  1. templete으로 컨테이너 실행
## nginx 탬플릿(yaml 파일) 작성
$ vi nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

## nginx.yaml을 이용한 컨테이너 실행
$ kubectl apply -f nginx.yaml
deployment.apps/nginx created

## pod 확인
$ kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
nginx-7f456874f4-wfjmf   1/1     Running   0          65s

## deployments 확인
$ kubectl get deployments
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   1/1     1            1           70s
728x90
반응형

댓글