[k8s] 쿠버네티스 전체 아키텍처 이해

HYEOB KIM·2022년 7월 4일
1

kubernetes

목록 보기
4/14

아키텍처

콘솔: kubectl을 통해서 각 클러스터의 마스터 노드 API 서버로 접근합니다. 이때 콘솔에 있는 인증서를 이용해 권한에 대해 인증하고 승인되면 6443 포트로 통신할 수 있습니다.

kubelet: 쿠버네티스 데몬입니다. kubelet을 실행하면 쿠버네티스가 실행됩니다. 마스터 노드, 워커 노드에 모두 있습니다.

cadviser: kubelet에는 모니터링 툴인 cadviser가 있습니다. 노드의 CPU, 메모리, 이미지, 컨테이너 등의 정보를 수집해서 kubelet에 보냅니다. 그럼 kubelet은 마스터노드의 API 서버로 보냅니다.

CNI(Container Network Interface): 컨테이너 사이에 통신이 가능하도록 해주는 네트워크 인터페이스입니다. 마스터 노드, 워커 노드 모두에 있습니다.

ETCD: 각 노드의 kubelet에서 보내온 메타 데이터들이 저장되는 저장소입니다. key:value 형식으로 저장됩니다.

Controller: 콘솔의 kubectl 명령으로부터 지정된 파드 개수를 보장합니다. 예를 들어, 파드 개수가 2개로 지정된다면, 1개의 파드가 다운되었을 때 Controller가 이를 인지하고 API 서버에 이야기하고 API 서버는 스케줄러에게 파드가 생성되어야 한다고 말해줍니다.

CoreDNS: 서비스에 대해 어떤 클러스터와 매핑되는지 그러한 정보를 저장합니다.

Service: 파드를 하나로 묶어서 단일 진입점을 생성합니다. 그래서 각 파드로 진입할 때 로드 밸런싱되어 적절하게 부하가 분산됩니다.

profile
Devops Engineer

0개의 댓글