hgk0404.tistory
Code After Work
hgk0404.tistory

공지사항

  • 블로그
전체 방문자
오늘
어제
  • 전체 카테고리
    • [컴퓨터비전]
    • [MLOps]
      • [FastAPI]
    • [Computer Science]
      • [컴퓨터네트워크]
      • [알고리즘]
      • [자료구조 in C]
      • [C & C++]
      • [이산수학]
      • [Math]
    • [머신러닝]
      • [Numpy, Pandas]
    • [Cloud]
      • [AWS]
      • [NCP]
      • [Kubernetes]
      • [Terraform]
    • [Dev]
      • [가상환경]
      • [Linux]
      • [Docker]
    • [Python]
    • [Coding Test]
      • [백준]
      • [프로그래머스]
      • [SQL]
    • [WEB]
    • [일상]
    • [엑셀]
    • [금융]

인기 글

최근 글

최근 댓글

250x250
hELLO · Designed By 정상우.
hgk0404.tistory

Code After Work

[Kubernetes] ReplicaSet 설정 명령어
[Cloud]/[Kubernetes]

[Kubernetes] ReplicaSet 설정 명령어

2024. 5. 23. 12:07
728x90

 

 

*유데미에서 진행하는 Kubernetes for the Absolute Beginners - Hands-on 강의를 바탕으로 제작되었습니다.

 

ReplicaSet 파일은 다음과 같습니다.

# replicaset.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: myapp-replicaset
  labels:
    app: myapp
spec:
  selector:
    matchLabels:
      app: myapp # app: myapp의 라벨을 가짐
  replicas: 3
  template:
    metadata:
      name: nginx-2
      labels:
        app: myapp  # selector와 동일한 라벨을 가짐
    spec:
      containers:
        - name: nginx
          image: nginx

 

 

spec 속성 아래에 있는 selector.matchLabels와 template에 있는 metadata.labels는 동일해야 합니다

 

 

yaml 파일 이용해서 레플리카셋 생성

kubectl create -f replicaset.yaml

 

 

# 실행 중인 레플리카셋 확인 명령어
kubectl get replicaset

>>
NAME               DESIRED   CURRENT   READY   AGE
myapp-replicaset   3         3         3       11s

 

지정해둔 이름이 myapp-replicaset이었으니 그에 맞게 출력되었습니다

 

 

같은 labels를 가진 다른 pod을 실행하면 어떻게 될까?

 

 

앞선 포스팅에서 ReplicaSet은 selector에 있는 labels와 template에 있는 labels를 동일하게 해줘 감시해야할 파드가 무엇인지 확인한다고 했습니다. replicas는 3으로 설정했는데 별도의 yaml 파일에서 같은 labels를 가진 파드를 생성하려고 하면 어떻게 되는지 확인해 보겠습니다.

 

 

# nginx.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx-2
  labels:
    app: myapp # 동일한 labels를 가짐
spec:
  containers:
    - name: nginx
      image: nginx

 

 

 

# 같은 라벨을 가진 개별 pod 실행
kubectl create -f nginx.yaml

>>
pod/nginx-2 created

 

 

kubectl get pods

>>
NAME                     READY   STATUS    RESTARTS   AGE
myapp-replicaset-ls4xr   1/1     Running   0          113m
myapp-replicaset-vnctk   1/1     Running   0          113m
myapp-replicaset-zsx6k   1/1     Running   0          113m

 

개별 pod가 생성되지 않았습니다.

 

같은 라벨을 가진 pod의 수가 지정한 설정(replicas=3)를 넘어서려고 하기 때문에 ReplicaSet이 생성을 막은 것입니다.

 

 

그러면 생성되어 있는 ReplicaSet을 수정하여 pod의 개수를 4개로 변경해 보겠습니다

 

 

kubectl edit replicaset myapp-replicaset


>>
spec: 속성 아래에 있는 replicas=4로 변경

 

 

edit명령어 입력 후 저는 vim 편집기로 실행되었는데 수정 후 텍스트 에디터를 종료하면 바로 적용이 됩니다.

 

 

kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
myapp-replicaset-ls4xr   1/1     Running   0          126m
myapp-replicaset-r4hf7   1/1     Running   0          5s
myapp-replicaset-vnctk   1/1     Running   0          126m
myapp-replicaset-zsx6k   1/1     Running   0          126m

 

 

두 번째 파드가 5초전 생성인 것이 보이시나요?

 

단, edit 명령어는 지금 실행 중인 ReplicaSet을 수정한 것이기 때문에 후에 다시 ReplicaSet을 만들고 싶은 경우 yaml 파일도 맞게 수정해 주어야 합니다

 

 

replicas를 변경하는 다른 방법으로는 scale 명령어를 사용하는 방법이 있습니다

 

 

kubectl scale replicaset myapp-replicaset --replicas=2

>>
replicaset.apps/myapp-replicaset scaled

 

 

위와 같이 scale replicaset이라고 적어 레플리카셋을 조정하겠다고 입력해줍니다 

 

 

kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
myapp-replicaset-ls4xr   1/1     Running   0          136m
myapp-replicaset-zsx6k   1/1     Running   0          136m

 

 

4개 였던 pod가 2개로 줄어들고 자동으로 삭제되는 것을 확인할 수 있습니다

 

기존의 레플리카 셋을 수정하는 방법(= edit)명령어를 사용하는 방법을 선택했을때 image를 변경했다면 기존의 pod를 모두 지워주면 새로운 이미지로 적용됩니다.

 

 

# 모든 파드 삭제
kubectl delete pods --all

 

이러면 기존 image를 가진 파드들이 모두 지워지고 새로운 이미지를 가진 파드들로 교체됩니다

 

 

728x90
저작자표시 (새창열림)

'[Cloud] > [Kubernetes]' 카테고리의 다른 글

[Kubernetes] 쿠버네티스 업데이트 & 롤백  (0) 2024.05.24
[Kubernetes] deployment 기본  (0) 2024.05.24
[Kubernetes] 쿠버네티스 ReplicaSet  (0) 2024.05.22
[Kubernetes] 쿠버네티스 pod-definition 기본 형식  (0) 2024.05.22
[Kubernetes] VSCODE Kubernetes YAML 확장 프로그램 설치 및 설정  (0) 2024.05.22
'[Cloud]/[Kubernetes]' 카테고리의 다른 글
  • [Kubernetes] 쿠버네티스 업데이트 & 롤백
  • [Kubernetes] deployment 기본
  • [Kubernetes] 쿠버네티스 ReplicaSet
  • [Kubernetes] 쿠버네티스 pod-definition 기본 형식
hgk0404.tistory
hgk0404.tistory
공부기록

티스토리툴바