Kubernetes Architecture
Components
- 쿠버네티스는 한 대의 마스터와 여러 대의 워커노드로 구성
- 마스터 노드는 Control plane Component, 워커 노드는 Worker Component
Networking
- 서비스와 파드 네트워크 영역이 있음
파드 네트워크 영역
- 파드 내의 컨테이너 통신과 파드끼리의 통신이 있음
- 파드끼리의 통신은 Calico Network Plugin을 사용했음
서비스 네트워크 영역
- 서비스를 파드에 붙여 서비스로 파드에 통신 가능
Storage
- 파드의 데이터는 hostPath, Cloud Service, 3rd party Vendors를 사용하는 방법이 있음
- 어떤 스토리지를 사용하든 Volume Type은 FileStorage, BlockStorage, Object Storage 세 개의 종류임
Logging
- 쿠버네티스 App의 로그 관리 부분
- 크게 Service Pipeline, Core Pipeline이 있음
Core Pipeline
- 파드에서 생성된 로그가 어떤 구조로 쌓이는지 그리고 어떻게 보는지 설명할 예정
Service Pipeline
- 별도의 플러그인을 설정하면 모니터링하는 파드들이 생김
- 파드들이 각각의 노드에서 로그를 수집서버에 모으고 UI를 통해 사용자에게 보여줌
Components - Pod Creation
Master Node
- manifest 디렉토리에 Etcd, kube-scheduler, kube-apiserver에 대한 yaml 파일이 있음
- 이 설정된 파드들을 static으로 띄움
Worker Node
- kubelet과 Container Runtime인 도커가 구동
사용자가 kubectl create pod 명령어를 쓸 때의 과정
kubectl create pod
명령이 kube-apiserver에 전달- kube-apiserver는 이 파드의 입력정보를 Etcd에 저장
- kube-scheduler가 kube-apiserver를 감시하다 파드 생성 요청을 파악하여 어느 노드로 갈지 할당
- 각 노드별 kubelet은 kube-apiserver를 감시 중 자신의 노드에 할당된 걸 파악하면 정보를 가져와서 파드 생성 시작
- kubelet이 도커한테 Container 생성 요청
- kubelet은 kube-proxy에 네트워크 생성 요청 후 새로 생성된 Container와 통신이 되도록 함
Controller Manager
kube-controller-manager.yaml
은 마스터의 manifests에 정의되어 있어, 마스터 노드에 Controller Manager 파드가 띄워져 있음- Controller Manager에는 여러 컨트롤러들에 대한 기능이 스레드 형태로 돌아가고 있음
사용자가 Deployment의 replicas를 2로 설정했을 때의 과정
- 명령 kube-apiserver에 전달 및 Etcd에 저장
- Controller Manager의 Deployment 스레드는 kube-apiserver를 감시 중 deployment 생성 요청을 알게됨
- Deployment 스레드는 kube-apiserver에 ReplicaSet 생성 요청
- Etcd에 ReplicaSet 정보 저장, ReplicaSet은 또 kube-apiserver에서 생성 감지하여 replicas 숫자에 맞는 파드 생성 요청
- kube-scheduler는 노드가 할당되지 않은 파드를 감지하여 파드에 노드 할당
- 각 노드의 kubelet은 자신에게 할당될 파드 감지하여 파드의 컨테이너를 도커에 생성 요청
- kubelet이 kube-proxy를 통해 컨테이너와 연결
출처
인프런 - 대세는 쿠버네티스
'네트워크 > k8s' 카테고리의 다른 글
[k8s] 43. Storage (0) | 2021.02.26 |
---|---|
[k8s] 42. Networking (0) | 2021.02.26 |
[k8s] 40. Autoscaler - 실습 (0) | 2021.02.25 |
[k8s] 39. Autoscaler - HPA (0) | 2021.02.25 |
[k8s] 38. Ingress - 실습 (0) | 2021.02.25 |