도커 허브에 이미지 넣기

  1. 사용 할 컨테이너를 만들어서 허브에 넣는다.

파드 띄우기

  1. 개발자가 허브에 컨테이너를 이용하기 위해 kubectl create,deployment 명령어나 yaml파일 등을 이용해서 마스터 노드에 api를 날린다.
  2. 마스터노드의 api 에서 명령어를 받고, 스케줄러에 어떤 노드에 파드를 만들지 물어봄
  3. 스케줄러는 특정노드를 지정하여 api에 알려줌
  4. api는 해당 노드의 kubelet 에 파드 생성을 요청
  5. kubelet은 본인 노드의 도커로 도커 명령어로 컨테이너 생성을 요청
  6. 도커는 허브에서 이미지를 거져와 컨테이너를 수행, 쿠버네티스는 이렇게 생성된 컨테이너를 파드라는 단위로 일컫는다.

쿠버네티스 아키텍쳐

마스터 노드(control plane)
  1. api : api의 요청을 수행
  2. controller : 노드들에 pod가 잘 돌아가는지 확인하다 잘 동작하지 않는것이 있으면 api에 해당 컨테이너 수행 요청, 그러면 api는 다시 스케줄러에 문의, 즉 수행중인 컨테이너 갯수 보장
  3. scheduler : pod를 띄울때 어떤 노드가 좋은지 등을 etcd를 살펴보고 판단하여 api 에 전달한다.
  4. etcd : 워커노드의 상태와 쿠버네티스에 대한 상태 정보가 담김
워커 노드
  1. cadvisor : 각 노드별로 갖고 있다. 각 노드별 상태정보를 체크해서 마스터 노드의 api로 날리면, 마스터 노드는 이를 etcd 저장소에 저장한다.
  2. kubelet : 마스터 노드의 api로 부터 받은 요청을 해당 노드 도커 명령어 수행

+ Recent posts