쿠버네티스 Basic Architecture, 기본 아키텍처

쿠버네티스 Basic Architecture, 기본 아키텍처

728x90

# 쿠버네티스의 기본 아키텍처와 서비스에 대해서 알아보자.

- 쿠버네티스의 기본 구성은 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 을 만드는 것보다 더 윗 단계의 선언(추상표현)이다.

728x90

from http://may9noy.tistory.com/396 by ccl(A) rewrite - 2021-12-09 18:26:50