Net Eng

[CKA] - Deployment & Pod Scale 본문

Cloud/Kubernetes

[CKA] - Deployment & Pod Scale

欲心 2024. 1. 19. 16:44

[선수 지식]

1. Deployment

- Deployment > ReplicaSet > Pod x N

- Rolling Update & Rollback

 

2. Pod Scale

1) kubectl scale CMD

kubectl scale deploy DEPLOY --replicas=N

 

2) kubectl edit CMD

kubectl edit deploy DEPLOY

 

3) kubectl apply CMD

kubectl get deploy DEPLOY -o yaml > deploy.yaml
vi deploy.yaml
kubectl apply -f deploy.yaml

 


 

[선수 작업]

kubectl config set-context k8s --user=kubernetes-admin --cluster=kubernetes
kubectl create ns devops
kubectl create deployment eshop-order --image=nginx --replicas=2 -n devops

 


 

[문제1]

Expand the number of running Pods in eshop-order to 5.

namespace: devops

deployment: eshop-order

작업 클러스터: k8s

 


 

[풀이]

kubectl config current-context

* 현재 context 확인

 

kubectl config use-context k8s

* k8s 클러스터 사용

 

kubectl get ns devops

* 네임스페이스 확인

 

kubectl get deploy -n devops

* deployment 확인

 

kubectl scale deploy eshop-order --replicas=5 -n devops

* scale 명령어

 

kubectl get deploy eshop-order -n devops

* deployment 확인

 

kubectl get pods -n devops

* Pod 확인

 

deploy 및 Pod 확인

 


 

[문제2]

Q. Create a deployment as follows:

 

TASK:

name: webserver

replicas: 2

label: app-env-stage=dev

container name: webserver

container image: nginx:1.14

 

Scale Out Deployment.

Scale the deployment webserver to 3 pods

 


 

[풀이]

kubectl create deploy webserver --image=nginx:1.14 --port=80 --replicas=2 --dry-run=client -o yaml

* dry-run 명령어로 yaml 추출

 

kubectl create deploy webserver --image=nginx:1.14 --port=80 --replicas=2 --dry-run=client -o yaml > webserver.yaml

* 해당 내용으로 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

* yaml 파일 수정

 

kubectl apply -f webserver.yaml

* yaml 파일 적용

 

kubectl get deploy webserve

* 생성된 deploy 확인

 

kubectl get pods

* Pod 확인

 

kubectl scale deploy webserver --replicas=3

* scale 명령어

 

kubectl get pods --show-labels

* Pod 확인

 

scale 조정된 Pod 확인

 


 

[참고]

 

Kubectl Reference Docs

 

kubernetes.io