본문 바로가기
네트워크/k8s

[k8s] 41. Component

by Lauren X Ming 2021. 2. 26.

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 명령어를 쓸 때의 과정

  1. kubectl create pod 명령이 kube-apiserver에 전달
  2. kube-apiserver는 이 파드의 입력정보를 Etcd에 저장
  3. kube-scheduler가 kube-apiserver를 감시하다 파드 생성 요청을 파악하여 어느 노드로 갈지 할당
  4. 각 노드별 kubelet은 kube-apiserver를 감시 중 자신의 노드에 할당된 걸 파악하면 정보를 가져와서 파드 생성 시작
  5. kubelet이 도커한테 Container 생성 요청
  6. kubelet은 kube-proxy에 네트워크 생성 요청 후 새로 생성된 Container와 통신이 되도록 함

Controller Manager

  • kube-controller-manager.yaml은 마스터의 manifests에 정의되어 있어, 마스터 노드에 Controller Manager 파드가 띄워져 있음
  • Controller Manager에는 여러 컨트롤러들에 대한 기능이 스레드 형태로 돌아가고 있음

사용자가 Deployment의 replicas를 2로 설정했을 때의 과정

  1. 명령 kube-apiserver에 전달 및 Etcd에 저장
  2. Controller Manager의 Deployment 스레드는 kube-apiserver를 감시 중 deployment 생성 요청을 알게됨
  3. Deployment 스레드는 kube-apiserver에 ReplicaSet 생성 요청
  4. Etcd에 ReplicaSet 정보 저장, ReplicaSet은 또 kube-apiserver에서 생성 감지하여 replicas 숫자에 맞는 파드 생성 요청
  5. kube-scheduler는 노드가 할당되지 않은 파드를 감지하여 파드에 노드 할당
  6. 각 노드의 kubelet은 자신에게 할당될 파드 감지하여 파드의 컨테이너를 도커에 생성 요청
  7. 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