반응형
<쿠버네티스 구조와 기본 오브젝트>
안녕하세요.
개발자 김모씨입니다.
저번 포스팅에서는
쿠버네티스란 무엇인지, 왜 써야하는지에 대해 간단히 알아보았는데요.
(혹시 아직 안 보신 분은 얼른 보고 오세요!!!)
artist-developer.tistory.com/30
IT 신기술을 배우면서 가장 어려운 것은,
역시 생소한 용어와 컨셉이 아닐 수 없습니다.
그래서 오늘은,
쿠버네티스의 구조에 대해
쉽고 빠르게 알아보겠습니다.
쿠버네티스 구성
쿠버네티스의 기본적인 아키텍처는
마스터와 노드 로 구분됩니다.
전체 구조도는 대략 이런 그림이죠.
클러스터 전체를 관리하는 컨트롤러로써 마스터가 존재하고,
컨테이너가 배포되는 머신(virtual 또는 physical) 노드가 존재합니다. (워커노드라고도 부릅니다.)
마스터 노드에서 적절한 워커노드에 컨테이너를 할당하고 운영하는 구조죠.
일반적으로는 마스터 노드가 1개로 전체 쿠버네티스 시스템을 관장하지만,
마스터 노드를 여러개 둬서 이중화하는 방법도 있습니다.
이건 좀 심화된 내용이니, 나~중에 살펴보겠습니다.
쿠버네티스 아키텍처와 각각의 역할
좀더 자세히 들여다 봅시다.
쿠버네티스 내부 모듈들은 표현한 그림이 있어서 가져왔어요.
각각의 역할에 대해 간단히 살펴봅시다.
- kubectl : 쿠버네티스 사용자 또는 관리자가 쿠버네티스에 명령을 내리기 위한 command 입니다.
'kubectl get cluster-info' (쿠버네티스 클러스터 정보를 확인하는 명령어) 이런 식으로 동작하죠. - API server : kubectl에 의해 마스터 노드로 들어온 명령어는 API 서버로 전달됩니다.
명령어를 각 worker 노드에 전달해준다거나, etcd(로그 저장소 정도로 우선 생각합시다)와 통신하는 등의 역할을 담당합니다. - controller-manager : namespace, service account, replica 등의 생성/삭제 등을 제어하는 역할입니다.
- scheduler : pod, service 등 각 쿠버네티스 리소스들을 적절한 노드에 할당하는 역할을 담당합니다.
- etcd : 메타데이터 저장소입니다. pod 갯수, pod의 상태 등의 클러스터 데이터부터 서비스 동작 정보 등의 세부적인 정보까지 저장되는 Key-Value 형태의 저장소입니다.
- kubelet : 쿠버네티스 클러스터의 각 노드에서 실행되는 에이전트입니다. 각 pod에서 컨테이너가 확실하게 동작하도록 관리하는 역할을 담당합니다.
- kube-proxy : 쿠버네티스 클러스터의 각 노드에서 실행되는 네트워크 프록시입니다. 각 노드의 네트워크 규칙을 유지 및 관리함으로써, 클러스터 내부 네트워크 세션(마스터와 노드간)이나 클러스터 바깥에서 파드로 네트워크 통신을 할 수 있도록 만드는 역할을 담당합니다.
- Pod : 쿠버네티스의 가장 작은 배포 단위입니다. N개의 컨테이너들이 각 Pod에 배포되어 실행됩니다. 쿠버네티스는 기본적으로 pod을 적절한 노드에 배치하고 운영하고, pod의 상태를 모니터링하는 방식으로 동작합니다.
오늘은 가볍게 구조와 역할을 살펴보는 것이 목적이었기 때문에,
구체적인 역할과 심화된 내용은 넣지 않았습니다.
천천히~ 쉽게~ 가보죠~
오늘은,
여기까지 입니다
구독과 댓글은 개발자김모씨에게 큰 힘이 됩니다.
감사합니당당당
반응형
'Skill-UP > Kubernetes' 카테고리의 다른 글
[Kubernetes] 쿠버네티스 ReplicaSet (3) | 2020.11.16 |
---|---|
[Kubernetes] 쿠버네티스 namespace (4) | 2020.11.12 |
[Kubernetes] 쿠버네티스 Pod (3) | 2020.11.11 |
[Kubernetes] Kubernetes 소개 (1) | 2020.11.06 |
댓글