※주의
이 글은 제가 혼자 공부하면서 여기저기 찾아보고 정리하는 곳이라서
글의 퀄리티나 내용상 맞지 않는 부분들이 있습니다.
공식문서가 더욱 더 큰 도움이 될 수 있습니다!
궁금점
디플로이먼트는 레플리카셋을 관리한다.
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개의 파드가 돌아가는 것을 알 수 있습니다.
2.
특이한 점
조금 특이 했던건 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 |