정현수
현수 세상
정현수
전체 방문자
오늘
어제
반응형
  • 분류 전체보기 (267)
    • NEXTSTEP 자바스크립트 클린코드 2기 (1)
    • 우테코 4기 (6)
    • 회고록 (5)
    • 개발지식 (6)
    • React (3)
      • React Clone Coding (3)
    • React Native (2)
    • Kubernetes & Docker (36)
      • 궁금한 것 (13)
    • Flutter (2)
    • 알고리즘 (168)
      • 프로그래머스 1단계 (27)
      • 프로그래머스 2단계 (37)
      • 백준 (98)
      • 이론 (6)
    • 자료구조 (3)
    • 유튜브 (1)
    • 책 읽자 (1)
    • 취업준비 (1)
    • 대내 활동 (31)
      • 2022년 겨울방학 알고리즘 특강 (0)
      • 2020년 여름방학 모각코 (13)
      • 2020년 겨울방학 모각코 (13)
      • 웹프로그래밍 상상튜터링 (5)

인기 글

최근 글

공지사항

  • 블로그 이동

태그

  • docker
  • 우테코
  • 모각코
  • 개발지식
  • 프로그래머스
  • programmers
  • 파이썬
  • 백준
  • Jenkins
  • 공식문서
  • 그리디
  • 레플리카셋
  • 디플로이먼트
  • flutter
  • mysql
  • Kubernetes
  • kubelet
  • 노드
  • 리액트
  • 쿠버네티스
  • replicaset
  • NodePort
  • Deployment
  • image pull
  • React
  • 자바스크립트
  • image run
  • javascript
  • 알고리즘
  • 이코테

최근 댓글

블로그 메뉴

  • 홈

티스토리

hELLO · Designed By 정상우.
정현수

현수 세상

쿠버네티스 Deployment와 ReplicaSet에 대해서
Kubernetes & Docker/궁금한 것

쿠버네티스 Deployment와 ReplicaSet에 대해서

2020. 7. 16. 16:16
반응형

※주의

이 글은 제가 혼자 공부하면서 여기저기 찾아보고 정리하는 곳이라서

글의 퀄리티나 내용상 맞지 않는 부분들이 있습니다.

공식문서가 더욱 더 큰 도움이 될 수 있습니다!

궁금점

 

디플로이먼트는 레플리카셋을 관리한다.

1.  디플로이먼트와 레플리카셋을 동시에 만들면 어떻게 될까?

2. 디플로이먼트도 레플리카셋을 만들어 파드를 관리하고 레플리카셋도 파드를 만들어서 관리를 하는데

그럼 굳이 디플로이먼트를 만들어야 하는 이유가 있을까? 그냥 레플리카셋을 만들어서 파드를 관리하면 되잖아.

 


예상

 

디플로이먼트와 레플리카셋은 거의 같은 개념? 이라고 봐도 무방하기 때문에

같이 바라본 pod에 대해 충돌이 일어나거나 오류가 생길 것 같다.


조건

 

동일한 컨테이너를 포함해야함.

Minikube에서 단일노드로 진행을 했다.


행동

apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins-deployment
  labels:
   test: test1
spec:
  replicas: 2
  selector:
    matchLabels:
     test: test1
  template:
    metadata:
      labels:
        test: test1
    spec:
      containers:
      - name: container-from-deployment
        image: jenkins/jenkins:lts
        ports:
        - containerPort: 8080
          name: jenkins
---
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: jenkins-replicaset
  labels:
    app: MyApp
spec:
  replicas: 2
  selector:
    matchLabels:
     test: test1
  template:
    metadata:
      labels:
        test: test1
    spec:
      containers:
      - name: container-from-replicaset
        image: jenkins/jenkins:lts
        ports:
        - containerPort: 8080
          name: jenkins

 

 


결과

 

1. 디플로이먼트와 레플리카셋을 따로따로 생성한다.

 

디플로이먼트에서 생성한 레플리카셋에서 생성 된 파드 2개

그리고 레플리카셋에서 생성 된 파드 2개해서 총 4개의 파드가 돌아가는 것을 알 수 있습니다.

 

4개의 pod

2.

공식문서

 

https://kubernetes.io/ko/docs/concepts/workloads/controllers/replicaset/#%EB%94%94%ED%94%8C%EB%A1%9C%EC%9D%B4%EB%A8%BC%ED%8A%B8-%EA%B6%8C%EC%9E%A5

 

레플리카셋

레플리카셋의 목적은 레플리카 파드 집합의 실행을 항상 안정적으로 유지하는 것이다. 이처럼 레플리카셋은 보통 명시된 동일 파드 개수에 대한 가용성을 보증하는데 사용한다. 레플리카셋의 �

kubernetes.io


특이한 점

 

조금 특이 했던건 pod의 이름 이었습니다.

 

디플로이먼트 -> 레플리카셋 -> 파드 순으로 생성이 되기 때문에

디플로이먼트 -> 레플리카셋에서 생성되는 이름 [DEPLOYMENT-NAME]-[RANDOM-STRING] 으로 생성이 되고

레플리카셋 -> 파드에서 생성되는 이름은 [REPLICASET-NAME]-[RANDOM-STRING] 으로 생성이 되기 때문에

[RANDOM-STRING]이 두 번 붙는 것을 볼 수 있습니다.

[디플로이먼트]-[랜덤 스트링]-[랜덤 스트링]

반면 레플리카셋은

레플리카셋 -> 파드 순으로 생성이 되기 때문에

 [REPLICASET-NAME]-[RANDOM-STRING] 만 붙어 [RANDOM-STRING]이 한 번만 붙은 것을 알 수 있습니다.

[레플리카셋]-[랜덤 스트링]

 

반응형

'Kubernetes & Docker > 궁금한 것' 카테고리의 다른 글

쿠버네티스 볼륨(volume)에 대해서  (0) 2020.07.17
쿠버네티스 minikube status 명령어를 입력하면 나오는 kubelet, apiserver,kubeconfig에 대해서  (0) 2020.07.17
쿠버네티스 노드와 마스터 서버에 대해서(kubelet, kubeadm)  (0) 2020.07.17
쿠버네티스 서비스(service)의 노드포트(NodePort)의 포트가 겹쳤을 때 어떻게 될까?  (0) 2020.07.17
쿠버네티스 YAML파일 Selector는 무엇을 가리킬까?  (2) 2020.07.16
    정현수
    정현수
    깃허브 : https://github.com/junghyeonsu 개인 블로그 : https://junghyeonsu.com/ (양질의 글을 올리려고 항상 노력합니다.)

    티스토리툴바