본문 바로가기
카테고리 없음

Kube-API Server - Certified Kubernetes Administrator(CKA)

by sy.cho__ 2020. 10. 19.

본 게시글은 CKA 취득 위해 공부한 내용 정리하기 위해 작성한 글이며 첨부한 자료 및 내용은 Udemy에서 제공하는 CKA강의를 활용하였습니다.  (www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/)

저작권 등에 문제가 생길 시 게시글을 내리도록 하겠습니다. 


Kube-api Server

Kube-api server는  Kubernetes에서 Management 역할을 합니다. 

Client에서 kubectl 명령어를 입력하면, 이는 kube-apiserver로 전달되는데, 우선 사용자가 해당 명령어를 사용할 수 있는지 권한 인증을 하고, Request가 올바른지 확인한 다음 ETCD로부터 데이터를 받아 이를 Clinet에게 전송합니다. kube-api server는 ETCD와 통신할 수 있는 유일한 componet입니다. 

그러나 post request를 direct로 api를 호출하면 위와 같은 인증을 거치지 않고 바로 실행할 수 있습니다. 

만약 다음과 같은 명령어를 실행하면 노드를 배정하지 않고 POD를 생성할 수 있다. 

 curl –X POST /api/v1/namespaces/default/pods ...[other]

Scheduler는 지속적으로 API Server를 모니터하다가 새로운 POD가 생성된 것을 확인합니다. 이 POD를 적절한 NODE에 할당할 것을 다시 kube-api server에게 전달합니다. 그러면 API-SERVER는 ETCD에 정보를 업데이트하고 적절한 Worker  노드의 kubelet에 전달합니다. kubelet은 해당 노드에 POD를 생성한 뒤 CRE에게 Deploy할 것을 요청합니다. 

이와 같은 과정이 마무리 되면, kubelet은 status를 api-server에 전달하고 api-server는 다시 ETCD에 업데이트 합니다. 

정리하면 아래와 같은 sequence로 kube-api server가 동작합니다. 


읽어주셔서 감사합니다.

반응형