# 쿠버네티스의 기본 아키텍처와 서비스에 대해서 알아보자.
- 쿠버네티스의 기본 구성은 pod, 레플리카셋, 디플로이먼트, 서비스(클러스터IP, 노드포트, 로드밸런서), Ingress
- pod : Pod 는 쿠버네티스에서 가장 기본적인 배포 단위로, 컨테이너를 포함하는 단위이다. 쿠버네티스의 특징중의 하나는 컨테이너를 개별적으로 하나씩 배포하는 것이 아니라 Pod 라는 단위로 배포하는데, Pod는 하나 이상의 컨테이너를 포함한다.
- ReplicaSet : 레플리카셋이란? 쿠버네티스에서 가장 유명한 특징중 하나는 "pod이 죽었을때 다시 복구해준다" 입니다. pod을 복구해주는 resource는 대표적으로 레플리케이션 컨트롤러(replication-controller)와 레플리카셋(replicaset)이 있습니다.
- 리플리카셋을 조회하면 DESIRED 5, CURRENT 5, READY 5 으로 조회가 된다. 그렇다면 해당 namespace의 pod를 조회해보면 5개의 pod가 생성되어 있는것을 확인 할 수 있다. 위에서 언급 했듯이 ReplicaSet의 주요 기능은 pod가 죽었을때 복구를 해준다 이다. ReplicaSet이 항상 pod의 상태를 살피고 문제가 있으면 재시작 및 상태 보존을 수행한다.
k8s-master-node@k8smasternode-Virtual-Machine:~$ kubectl get rs -n nginx
NAME DESIRED CURRENT READY AGE
mynginx-69d586ff67 5 5 5 28d
k8s-master-node@k8smasternode-Virtual-Machine:~$ kubectl get pod -n nginx
NAME READY STATUS RESTARTS AGE
mynginx-69d586ff67-6hsnt 1/1 Running 3 (4h3m ago) 8d
mynginx-69d586ff67-8cmj7 1/1 Running 3 (4h3m ago) 8d
mynginx-69d586ff67-cwv8k 1/1 Running 3 (4h3m ago) 8d
mynginx-69d586ff67-rtrpt 1/1 Running 8 (4h3m ago) 8d
mynginx-69d586ff67-vtj7d 1/1 Running 3 (4h3m ago) 8d
- Deployment 란?
- Kubernetes에서는 각 Object를 독립적으로 생성하기 보다는 Deployment를 통해서 생성하는 것을 권장하고 있으며, Pod와 ReplicaSet의 기준정보를 지정할 수 있다.
- 이러한 Deployment는 Pod의 scale in / out 되는 기준을 정의한다.
Pod의 배포되고 update 되는 모든 버전을 추적할 수 있다.
배포된 Pod에 대한 rollback을 수행할 수 있다.
즉, 개념적으로 Deployment = ReplicaSet +Pod+history이며, ReplicaSet 을 만드는 것보다 더 윗 단계의 선언(추상표현)이다.
'⭐ Kubernetes & EKS > Kubernetes (쿠버네티스)' 카테고리의 다른 글
nodes are available: 1 Too many pods. (0) | 2022.03.24 |
---|---|
쿠버네티스 alias 기능 활성화 # (0) | 2021.10.18 |
쿠버네테스 api 버전 종류 (0) | 2021.10.15 |
쿠버네티스 Create VS Apply 차이점 (0) | 2021.10.09 |
수동 스케줄링 (원하는 노드에 배치) # (0) | 2021.09.26 |