쿠버네티스 아키텍처

Watermelon·2025년 10월 15일

CKA 학습 과정

목록 보기
5/35

쿠버네티스 동작 과정

컨테이너 빌드 - 컨테이너 저장 - k8s 컨테이너 실행
-> 동작

  1. 서비스 제공자(개발자나 운영자 등)가 기능별 컨테이너를 도커에 업로드
  2. 업로드된 컨테이너는 사내 허브(보통 프라이빗) 또는 도커 허브(퍼블릭)에 저장
  3. 쿠버네티스 명령어로 컨테이너 실행 지시(yaml 실행 또는 명령어로 가능)
  4. master 서버에서 해당 API 접수
  5. 스케쥴러에게 노드 상태 문의
  6. 노드에게 실행 요청
  7. 노드의 kubelet은 도커 명령어로 docker에게 요청
  8. hub에서 요청 받은 컨테이너가 있을 시 제공
    -> 동작되는 컨테이너 = pod

쿠버네티스 컴포넌트


요청 -> API 수락 -> etcd 저장소(key - value 타입으로 저장됨) -> schduler -> node kubelet -> docker engine -> docker hub에서 버전 확인 -> 동작

  • etcd: worker node 상태, image 상태 등을 저장 중
  • kubelet(각 노드): cadvisor를 통해서 상태 감시가 가능(kubelet daemon 실행만 하면 OK)
  • schduler: etcd 정보를 바탕으로 적합한 node 반환
  • controller: 동작 컨테이너 확인 후 이상 발견 시 API 보고

마스터 컴포넌트

  • etcd: key-value 타입의 저장소
  • kube-apiserver: k8s API를 사용하도록 요청을 받고 요청이 유효한지 검사
  • kube-scheduler: 파드를 실행할 노드 선택
  • kube-controller-manager: 파드를 관찰하며 개수 보장

워커 노드 컴포넌트

  • kubelet: 모든 노드에서 실행되는 k8s 에이전드, 데몬 형태로 동작
  • kube-proxy:k8s의 network 동작을 관리, iptables rule을 구성
  • 컨테이너 런타임: 컨테이너를 실행하는 엔진(docker, containerd, runc)

애드온

  • 네트워크 애드온: CNI(weave, calico, flaneld, kube-route 등)
  • DNS 애드온: coreDNS
  • 대시보드 애드온(초기 설치 안되어있음, 리소스 모니터링 툴): 클러스터 내 쿠버네티스 리소스들의 상태와 에러 정보들 제공
  • 컨테이너 자원 모니터링(kubelet 안에 들어있음): cAdvisor
  • 클러스터 로깅(초기 설치 안되어있음, 로그 모니터링 툴): 컨테이너 로그, k8s 운영 로그들을 수집해서 중앙화, ELK(ElasticSearch, Logstash, Kibana), EFK(ElasticSearch, Fluentd, Kibana), DataDog
profile
많은 경험을 해보고자 하는

0개의 댓글