DevBoi

2. k8s 오브젝트 분석 본문

Infra/[K8S & Docker]

2. k8s 오브젝트 분석

HiSmith 2022. 8. 26. 15:07
반응형

<Pod>

가장 작은 배포 단위
Pod은 내부적으로 고유한 ip를 가질 수 있다.

Pod안에 보통 컨테이너가 하나만 있지만, 두개 이상이 존재할 수도 있다.

하나의 pod에 컨테이너와 캐시, 로그 등으로 묶을 수도있다.

ReplicaSet - 총 몇개의 pod으로 관리를 할 지를 결정한다.

만약에 3개의 pod만있는데, 4개를 요구한다면 pod template기준으로, 1개를 추가해준다.

 

<Deployment>

무중단 배포를 위해, 배포버전을 바꾸면, 리플리카가 두개가 뜨게 되고 이를 세팅을 바꾸게되면 pod의 개수를 줄이거나 늘리게 해준다.

Deployment 는 즉 ReplicaSet기준으로, 배포버전이 변경되었을때 무중단 배포를 위해서 존재하는 녀석이다.

 

<Service - ClusterIp>

클러스터 내부에서 사용하는 프록시

Pod들이 모인, 곳에 로드밸런싱을 해준다.

pod이 업데이트 될때 하나 죽고 신규로 생성되는 개념이기 때문에

pod으로 직접 통신하는것이 아닌 서비스로 통신하고, 이게 자동으로 로드밸런싱을 해줘서, 통신 할수있도록 해주는 것이 좋다.

고유의 ip를 가지기도한다.

 

 

예를 들어 redis, Mysql로 요청을 한다고 가정하자

 

서비스로 통신해서, 클러스터 ip를 하게 되면 이 서비스가 redis 내 pod을 가지고 통신해준다.

근데 서비스는 외부 브라우저로는 통신이 불가능하다. 즉 내부 통신 용이다.

따라서 노드는 별도의 포트를 만들어서, 서비스 포트, 노드포트를 띄우고 이를 호출하게 되면 내부 서비스 클러스터 ip로 통신을 하게 된다.

노드에 따라서 다르게 호출하더라도, 이 노드들이 결국 내부 서비스를 잘 찾아 간다.

즉, node01번의 pod에 호출하고싶어 node2번을 호출해도 내부적으로 service node1의 ip로 통신을 해준다는 것이다.

 

 

 

 

근데 이 노드에 대한 것도 죽을 수 있다.

따라서 앞단에 서비스 역할을 하는 로드 밸런서를 둬서  로드밸런서 -> 노드포트 서비스 -> 클러스터 ip 서비스 -> pod  순으로 통신을 하게 된다.

 

<Ingress>

Ingress는 도메인, 도메인 패스에 따라서 내부의 cluster ip 와 다르게 각각 연결을 할 수 있다.

 

일반적인 구성은 아래와 같다.

 

 

ingress를 통해서 도메인 별로 loadbalancer 서비스 , 노드포트 서비스, 클러스터ip서비스, 내부 pod으로 통신을 하는 구조로 대부분 구축하여 가져간다.

쿠버네티스의 일반적인 방법이다.

 

그외 기본 오브젝트

 

Volume - Storage EBS,NFS

Namespace

ConfigMap / Secret

ServiceAccount

Role/ClusterRole 등등이 있다. 

 

이건 토이 프로젝트 진행 후에 하나씩 구현 해보면서 공부를 해보자

반응형

'Infra > [K8S & Docker]' 카테고리의 다른 글

[k8s] Pod 생성 및 실습  (0) 2022.08.27
[k8s] 기본 명령어 공부  (0) 2022.08.27
[k8s]Mac에서 데모 준비  (0) 2022.08.27
3.k8s 데모 구현준비  (0) 2022.08.26
1. k8s 상세 구조  (0) 2022.08.26