일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- docker
- k8s
- Engineer
- 초간단파이썬
- Kubernetes
- multivm
- container
- 파이썬
- 컨테이너
- bash
- java
- Strimzi
- namespace
- aws #engineer
- 쿠버네티스
- httpd실행
- WEB
- springboot
- linux
- python
- mongodb operator
- nginx
- devops #engineer
- DOIK
- Vagrant
- variable
- devops #jenkins
- RSS
- ioredirection
- 도커
- Today
- Total
샤인의 IT (막 적는) 메모장
[Kubernetes 기본 정리] 쿠버네티스 리소스 본문
기본 구조.
Kubernetes에서 배포할 때 기본적으로 Deployment나 Statefulset을 이용하여 Pod를 배포한다
Pod는 하나의 컨테이너 뿐 아니라 내부에 복수 컨테이너를 집어넣어 배포할 수 있다.
예로들면 개발자가 App을 만들어 이미지로 만들고(Dockerfile) App이 올라가는 곳이 파드이다.
보통 Pod만 배포해서 사용하지 않고 그 Pod들을 관리하기 위해 Deployment나 Statefulset을 사용한다.
Deployment = Stateless Pod 배포 리소스
Statefulset = Stateful Pod 배포 리소스
Stateless와 Stateful에 대해서 알아야하는데 해석 그대로 상태를 가지냐 안가지냐로 나뉜다.
나는 주로 데이터를 저장하느냐 안하느냐로 Stateless와 Stateful을 이해한다.
이 상태에 대해서 여러 깊은? 얘기하시는 분들도 있지만 쉽게 이해하자면 데이터 저장의 유무를 생각하면 된다.
여기서 더 웃긴 얘기는 Deployment도 볼륨을 붙여서 배포할 수 있다는 점이다.
여기서 더 깊게 들어가면 Replica(복제본)을 이해해야한다.
쿠버네티스는 Replica를 너무나도 쉽게 Scale-Out Scale-In이 가능하다.
이 Replica를 관리하는 리소스가 ReplicaSet인데 이전에는 ReplicationController였으나 Deplicated 되었으며
업데이트 된 버전이라고 생각하면 될 것 같다.
해당 기능은 크게 차이는 없는데, 등호 방식-집합 방식(equlity-based/set-based) 표현의 차이가 있다.
이렇게 Replica를 늘리고 줄일 수 있는데 해당 Pod들을 늘릴 경우에는 어떻게 될까?
Deployment는 따로 저장소를 가지고 있지 않기 때문에 Pod들이 쉽게 늘어날 수 있지만 PV가 연결된 StatefulSet은?
볼륨으로 연결된 PVC까지 같이 늘어난다. 이 차이다.
디플로이먼트는 Stateless 하지만 볼륨을 연결할 수 있다. 다만 Single Instance로만 연결할 수 있다. Scale out은? 안된다!
결국 디플로이먼트도 Stateful한 App을 배포할 수 있지만 Replica는 확장할 수 없다. (그래서 대부분 Stateless한 경우 사용한다고 표현한다)
여기서 이렇게 Deployment나 StatefulSet으로 배포한 후 외부에서 접속하기 위한 네트워킹 리소스로 서비스가 필요하다.
클러스터에서 배포만 된 상태로 해당 파드에 접속하기 위해서 따로 서비스 리소스를 통하여 접속한다.
서비스 종류는 여러가지 있지만 나중에 정리
'Container > Kubernetes 기본' 카테고리의 다른 글
[Kubernetes 기본 정리] Object (0) | 2022.01.05 |
---|---|
[Kubernetes 기본 정리] Namespace (0) | 2021.04.29 |
[Kubernetes 기본 정리] ServiceAccount (0) | 2021.04.15 |
[Kubernetes 기본 정리] 쿠버네티스란? (0) | 2021.04.06 |
[Container] Container란? (0) | 2021.03.23 |