쿠버네티스 동작 원리와 구성요소

inuit·2025년 4월 1일

All about 쿠버네티스

목록 보기
3/21
post-thumbnail

최근 업데이트일 2024-11-01

실습 동영상 따라하며 배우는 쿠버네티스

컨테이너 이미지로부터 실제로 컨테이너를 생성하고 실행하는 컨테이너 런타임이 Docker에서 containerd로 바뀌었기 때문에 이를 유의해야 한다. 실습 영상에서는 Docker 기준으로 설명이 이루어진다.

컨테이너 동작 Flow

  1. 개발자가 이미지를 어떤 hub에 docker push한다.
  2. hub에서 가져온 이미지를 kubectl로 deployment를 create한다.
  3. Master node의 API가 요청을 받아서 scheduler에 전달하면 어떤 node에 생성할지 결정한다.
  4. 결정된 node의 kubelet에 전달하면 docker daemon이 hub에서 container를 확인해서 실행한다.
  5. 쿠버네티스가 Pod 단위로 관리한다.

쿠버네티스 아키텍쳐

  • control plane(=master node)
    1. master node의 API가 kubectl 요청을 받아서 문법 및 권한 검사
    2. etcd는 저장소로 key:value 타입으로 worker node의 상태 정보를 저장한다.
    3. 각 worker node의 상태 정보는 각 kubelet(daemon)이 cAdvisor라는 컨테이너 모니터링 툴로 저장 중
    4. API가 etcd 정보를 받아서 schduler에 전달하면 schduler가 node 선택 후 API가 이를 해당 kubelet에 알림
    5. kubelet이 docker 명령어 요청하면 docker가 hub에서 가져와서 실행
    6. 필요 container가 다운되면 controller가 이를 알아채고 API에게 요청보내서 다시 동작
    7. coreDNS는 기본 설치, container간 통신을 위한 CNI는 필요에 따라 설치 → ※ 이제는 필수
  • worker node
    • kubelet
    • kube-proxy: 네트워크 담당
    • container runtime: docker (또는 containerd)
  • add-on
    • 네트워크 애드온: CNI
    • dns 애드온: coreDNS
    • 대시보드 애드온(기본 설치 X): 웹 UI로 쿠버네티스 관리
    • 컨테이너 자원 모니터링: cAdvisor
    • 클러스터 로깅 (기본 설치 X): 컨테이너 로그, k8s 운영 로그 수집해서 중앙화
      • e.g. ELK(ElasticSearch, Logstash, Kibana), EFK(ElasticSearch, Fluentd, Kibana), DataDog
profile
It’s always white night here.

0개의 댓글