CKA 30제 06: Deployment & Pod Scale

주영·2023년 10월 29일
0

CKA 30제

목록 보기
6/7
post-thumbnail

본 게시물은 [따배씨] 06. Deployment & Pod Scale 영상을 참고하여 작성한 글입니다.

문제 1. Pod scale out

작업 클러스터 : k8s

  • Expand the number of running Pods in "eshop-order" to 5
    • namespace : devops
    • deployment : eshop-order

풀이

0. 컨텍스트 변경

$ kubectl config use-context k8s

Switched to context "k8s".

1. namespace 확인

$ kubectl get namespaces devops

NAME     STATUS   AGE
devops   Active   37d

2. deployment 확인

$ kubectl get deployments.apps -n devops

NAME          READY   UP-TO-DATE   AVAILABLE   AGE
eshop-order   2/2     2            2           37d

3. scale out (pod 5개로 확장)

$ kubectl scale deployment eshop-order -n devops --replicas=5

deployment.apps/eshop-order scaled

4. 확인

$ kubectl get deployments.apps -n devops
NAME          READY   UP-TO-DATE   AVAILABLE   AGE
eshop-order   5/5     5            5           37d

$ kubectl get pods -n devops
NAME              READY   STATUS    RESTARTS   AGE
eshop-order-xxx   1/1     Running   0          18s 
eshop-order-xxx   1/1     Running   0          18s 
eshop-order-xxx   1/1     Running   0          37d
eshop-order-xxx   1/1     Running   0          18s 
eshop-order-xxx   1/1     Running   0          37d 

문제 2. Deployment 생성하고 Scaling 하기

작업 클러스터 : k8s

  • Create a deployment as follows:
  • Task:
    • name : webserver
    • 2 replicas
    • label : app_env_stage=dev
    • container name : webserver
    • container image : nginx:1.14
  • Scale Out Depolyment
    • Scale the deployment webserver to 3 pods

풀이

0. 컨텍스트 변경

$ kubectl config use-context k8s

Switched to context "k8s".

1. deployment yaml 템플릿 생성

$ kubectl create deployment webserver --image=nginx:1.14 --replicas=2 --dry-run=client -o yaml > webserver.yaml

2. yaml 수정

$ sudo vi webserver.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: webserver
spec:
  replicas: 2
  selector:
    matchLabels:
      app_env_stage: dev
  template:
    metadata:
      labels:
        app_env_stage: dev
    spec:
      containers:
      - image: nginx:1.14
        name: webserver
        ports:
        - containerPort: 80

3. yaml 적용

$ kubectl apply -f webserver.yaml

deployments.apps/webserver created

4. Deployment 생성 확인

// pod 개수, Selector 확인
$ kubectl get deployments.apps -o wide
NAME        READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGE        SELECTOR
webserver   2/2     2            2           18s   webserver    nginx:1.14   app_env_stage=dev

$ kubectl get pods
NAME                         READY   STATUS    RESTARTS   AGE
webserver-78f746b644-d8wks   1/1     Running   0          36s
webserver-78f746b644-zxvsp   1/1     Running   0          36s

5. scale out (Pod 3개로 확장)

$ kubectl scale deployment webserver --replicas=3
deployment.apps/webserver scaled

6. scale out 확인

$ kubectl get pods --show-labels
NAME                         READY   STATUS    RESTARTS   AGE   LABELS
webserver-78f746b644-d8wks   1/1     Running   0          95s   app_env_stage=dev,pod-templage-hash=78f746b644
webserver-78f746b644-djs8b   1/1     Running   0          24s   app_env_stage=dev,pod-templage-hash=78f746b644
webserver-78f746b644-zxvsp   1/1     Running   0          95s   app_env_stage=dev,pod-templage-hash=78f746b644

0개의 댓글