티스토리 뷰

IaC/Kubernetes

[Kubernetes] Scale-out과 yaml 파일 수정

나미의 로그포스 2023. 4. 6. 17:13

Kubernetes에서 deploy로 만든 replicas set 개수를 조정하는 방식은 크게 세 가지가 있습니다.

 

 

nginx 이미지로 web deploy 1개 생성

 

우선 nginx 이미지를 가지고 web이라는 deploy를 하나 생성하겠습니다.

 

 

 

1. scale 명령어 이용

 

kubectl scale deployment [NAME] --replicas=[NUMBER]

 

web deploy를 --replicas=5로 scale out

 

--replicas 옵션을 통해 원하는 만큼 replicas set 수를 늘리거나 줄일 수 있습니다.

줄어들 때는 최근에 만든 것부터 삭제됩니다.

 

 

 

2. yaml 파일 수정

 

kubectl get deployments.apps [NAME] -o yaml
kubectl get deployments.apps [NAME] -o yaml > deploy.yaml
# 생성한 해당 deploy에 대한 yaml 파일을 deploy.yaml으로 저장

vi deploy.yaml
# vi 편집기로 yaml 파일 수정

kubectl apply -f deploy.yaml
# 수정한 yaml 파일 적용

 

web deploy에 대한 yaml 파일 뜨기

 

web_deploy.yaml 의 replicas: 3으로 수정

 

수정한 web_deploy.yaml 적용

 

yaml 파일의 replicas 값을 수정한 대로 replicas set 개수가 5개에서 3개로 줄어든 것을 확인할 수 있습니다.

 

 

 

3. edit 수정

 

kubectl edit deployments.apps [NAME]
# 바로 해당 deploy의 yaml 파일 오픈 -> 수정 후 저장하는 순간 바로 상태 변화

 

바로 줄어든 replias set 개수

 

edit 명령어를 사용하면 바로 yaml 파일이 열리며, 파일 변경 후 저장하고 나가게 되면 바로 그 내용이 적용됩니다.

(edit으로 파일을 열어 replicas: 1 을 저장하자 바로 다른 pod가 terminated 되는 것을 확인 가능) 

 

 


 

+ Yaml 파일 사용하기

 

생성한 deployment의 yaml 파일 내용은 다음과 같습니다.

사실 기존 pod로 yaml 파일을 뜨면 불필요한 정보까지 모두 포함하게 됩니다. 

 

https://kubernetes.io/docs/home/

 

Kubernetes Documentation

Kubernetes is an open source container orchestration engine for automating deployment, scaling, and management of containerized applications. The open source project is hosted by the Cloud Native Computing Foundation.

kubernetes.io

 

필요 없는 부분은 걷어내도 되고, kubernetes의 documentation을 참고하여 원하는 yaml 파일 샘플을 가져올 수도 있습니다.

 

 

생성한 deployment에 대한 주요 yaml 파일 내용은 아래와 같습니다.

 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web                  # deploy 이름
  labels:
    app: nginx
spec:
  replicas: 3                # replicas set 개수
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx          # container 이름
        image: nginx:1.14    # 가져올 이미지:버전
        ports:
        - containerPort: 80  # 사용 포트

 

이렇게 yaml 파일을 열어 pod와 container의 이름, 가져올 이미지, replicas set 개수, 포트 등을 변경할 수 있습니다.

 

뿐만 아니라 yaml 파일을 이용해 한 pod에 여러 컨테이너를 생성할 수도 있습니다.

 

 

+ multi pod 만들기

 

multi-pod : 컨테이너 2개 생성

 

pod 이름 : multipod

container 이름 : nginx-container, centos-container

 

위의 yaml 파일은 nginx와 centos:7 이미지를 가지고 multipod라는 한 pod 내에 컨테이너를 2개 생성합니다.

 

Pod 안에 컨테이너가 여러 개 = multi container pod
Pod 안에 컨테이너 1개 = single container pod

 

(*** 현업에서는 1 pod - 1 container 가 대부분)

 

 

이 외에도 kind와 label 등의 필드들을 이용해 다양한 작업을 할 수 있습니다. 다음 포스팅에서는 필드를 응용한 kubernetes의 다양한 기능에 대해 살펴보겠습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함