초보를 위한 쿠버네티스 안내서 6

뿌이·2022년 2월 18일
0

스프링 클라우드

목록 보기
14/32

이 글은 쿠버네티스 아키텍처 1/3 (구성/설계) 영상을 보고 정리한 글입니다.

🎇쿠버네티스 -원하는 상태


쿠버네티스는 상태체크를 한다. 서버를 몇개 띄워야하는 지 그런 설정 파일을 체크하는 것!

그리고 설정파일과 실제가 다르면 차이점을 발견한다.
그 후, 설정파일과 일치하게끔 만드려고 조치를 취한다.

scheduler, controller의 역할

  • 스케줄러 : L/B같은 역할. 좀 더 여유있는 서버로 보내줌
  • 컨트롤러 : 서버 상태 관리, 다른 상태들도 관리해주는 역할

쿠버네티스 아키텍처


etcd라는 데이터베이스(모든 상태와 데이터를 key,value로 저장해주고 백업해주는 역할),
API Server는 scheduler, controller이 다 api서버로만 오니까 교통정리 해주는 느낌.

API Server는 etcd와 통신하는 유일한 아이이다.
API Server는 권한도 체크해준다. 권한을 체크하여 db에 정보를 갱신하기도 한다.

  • controller의 역할 : 항상 체크하고 모니터링 하는것.


모두 다 api server만 찾는다.

node도 api server만 바라본다.
api server 인기쟁이네

kublet (큐블렛)은 pod과 직접 통신한다.
pod의 실행/중지 , 상태 체크를 한다.
컨테이너를 직접 사용하는게 아니라 pod이라는 걸로 감싸서 사용한다.

바로 통신하지 않고 proxy를 통해서 통신함.

전체적인 흐름


무조건 API Server를 통해서 통신하고,


스케줄러, 컨트롤러, 큐블렛은 계속 상태변화가 있는지 체크해주는 아이들이다.

예를들어 관리자가 pod생성 요청을 했다고 할 때.

  • API Server는 etcd에 pod생성 요청을 한다.
  • controller는 pod이 생성되었는지 확인-> pod 할당요청을 API Server에게 함
  • API Server는 etcd에 pod 할당 요청을 한다
  • Scheduler는 새로운 pod이 할당되었는지 확인한다.-> 특정노드에 pod 할당하라고 API Server에게 말한다
  • API Server는 pod 노드 할당을 etcd에게 요청한다. (근데 아직 실행된 상태는 아니자나???)
  • 그래서 Kublet 이 미실행 pod 확인을 한다. 미실행 pod이 있다면 pod을 생성해준다.
  • 그러면 API Server가 pod이 생성됐다고 etcd한테 알려준다
  • etcd에는 pod이 생성됐으며 실행중이라는 정보가 들어가게된다.

출처

쿠버네티스 아키텍처 1/3 (구성/설계)

profile
기록이 쌓이면 지식이 된다.

0개의 댓글