본문 바로가기
자바 , 기타 공부/클라우드 공부

3주차 - Kubernetes 설계

by 임지혁코딩 2024. 1. 10.

목표: 단순한 완료 보다는 학습 이후 개념의 확장과 추가에 이해를 응용하자 .

 

어떠한 가상머신에도 동일하게 관리되고 사용되어야 한다. 

명령어 set들(script)를 활용할 수도 있다. 

 

 

Kubernetes는 스스로 monitoring하고 관리를 처리한다. (OpenStack의 , 사용자에게 monitoring과 처리의 전반을 맡기는 개념과는 반대의 개념이다. )

 

EX) WORK NODE에서 CONTAINER X를 NODE B에서 작업하라는 명령.

만약에 WORK NODE에서 명령을 내린다면, NODE B의 장애가 생겼을때 USER가 직접 이를 해결해야 한다.

 

즉, KUBERNES의 세부적인 명령을 내리지 않고 원하는 상태만을 서술하고 이후 기능을 KUBERNETES가 진행해주는 식의 설계를 <DECLARATIVE>식으로 설계하였다. 

 

그 실제 형태를 보자.

Kubectl create -f replica.yaml (yaml이라는 상태 기술 파일 생성을 명령. ) - object 생성이라고도 한다.

POD(컨테이너의 동작 단위) A를 , 특정 NODE B에 자동 생성 .이 경우에 문제가 나면? 상태 기술 파일을 보고, POD A가 사라짐을 확인 -> 자동으로 NODE A에 POD A를 생성.

 

이 자동화를 어떻게 가능하게 했을까? KUBERNETS의 MASTERNODE도, 명령을 내리지 말아야 한다 (상태정보 정의만으로 끝내야 한다)(명령을 다시 내려서 NODE A에 POD A를 생성해서는 안된다) 

 

핵심은 : 각 WORK NODE들이 MASTER NODE의 상태정보를 확인하고, 각 WORK NODE 들이 POD 생성 등을 해야 한다.

 

MASTER NODE는 상태 정보를 가지는 API SERVER(전 내용을 기억하자)이를 확인하는 SCHEDULER(어디 NODE에 생성하면 좋을지를 API SERVER에 재 작성)

 

이를 다시 각 NODE들이 확인. 적혀있는 정보에 맞는 NODE가 POD 를 생성. 

 

해당 방식은 기능 확장의 용이를 발생 시켰다. 

 

KUBERNETES의 2번째 특징 :SECRETS DATA : PASSWORD,인증키, 등을 별도 관리 . (KUBERNETES DATABASE 안에 관리)CONFIGMAP DATA: KUBEAPI 중 , 기초 SETTING을 위한 (CONFIGURATION을 위한) 정보를 관리한다. 

 

DATA들의 활용 예시 

: 각 POD 들이 PW들을 확인하려면, KUBERNETES를 작동시켜 그 안에 있는 DBMS를 확인해야하나?

이 방식으로 진행하게 되면, API SERVER에 접근하여 CODE 를 가져와라 등 .. 

기존의 APPLICATION을 수정해야 한다. 

 

KUBERNETS의 3번째 특징 : 기존 APPLICATION을 수정없이 사용할 수 있게 끔 하자. 

2번째 특징의 연장. 

API SERVER안에 DBMS를 저장 하지 않고, 그 밖에 SECRET VOLUME을 두어, 각 컨테이너들의 동작시 이를 확인할 수 있게끔 하자 . 

허나 해당 저장 형태를 <REMOTE STOARGE로 두자 >

 

REMOTE STORAGE? 

API SERVER에서 POD A에 대한 정보를 공표한다고 말했다.

해당 공표에는, POD A 뿐만 아니라 외부 STORAGE에 대한 정의 까지 작성되어 있다. 

해당 STORAGE는, 외부의 관리 파트에 있다 (즉. 이를 접근하기 위해 API SERVER가 작동되거나 하지 않는다)

해당 STORAGE에서, 추가의 STORAGE를 준비하여, 해당 STORAGE를 특정 컨테이너가 필요한 정보를 바로 쓰게 MOUNT 해준다. (MAPPING 처럼!) 

 

이렇게 완성된 특별 STORAGE는, POD가 삭제 되어도 유지되게끔 한다. 

 

4번째 개념 : 이 유지에 관한 얘기

PERSISTENTVOLUMNE이라는 개념이 사용된다.  (이후에 추가 학습할 것이다) 

 

---정리 ---

 

KUBERNETS의 특징 :

1. 각 NODE들이 자동으로 추가적인 행위를 진행한다. (API SERVER의 상태정보를 확인하고 나서)

(즉, 사용자 혹은 MASTER NODE가 명령을 내리지 않는다.

**해당 내용이 핵심이다! 

2. SECRET DATA, CONFIG DATA 등이 있다. 3. 이는 내부에 있지 않고, 원할때 STORAGE로 각 CONTAINER가 사용하게 한다.(APPLICATION이 추가적인 행위를 해줄 필요 없다 )4. 이 STORAGE는 POD가 제거 되어도 유지된다. 

 

STORAGE랑 DB랑 차이가 있나? - MYSQL , POSTGRESQL과 같은 개념으로 생각할 수 있다. 

 

'자바 , 기타 공부 > 클라우드 공부' 카테고리의 다른 글

K8S (쿠버네티스란?)  (0) 2024.02.03
명령어 실습  (0) 2024.01.31
3주차  (1) 2024.01.03
2회차  (1) 2023.12.27
클라우드 첫 번쨰 강의  (1) 2023.12.22