본문 바로가기
Kubernetes(k8s)/따배쿠(따라하면서 배우는 쿠버네티스) 학습

[k8s]Kubernets 아키텍처 - 동작 원리 & 컴포넌트

by 열정주니어 2023. 2. 10.
반응형

쿠버네티스에서 컨테이너 동작 Flow

 

사용 주체

  • 개발자
  • 운영자

동작 순서

  • 컨테이너 빌드
    • main ui container, log in container, pay container 등
  • 저장소에 컨테이너 이미지 push
    • 사내 저장소, docker hub 등
  • 사용 주체가 명령어를 통해 control-plane에 컨테이너 실행 요청
    • 명령어: CLI(kubectl), yaml 등
  • control-plane의 rest api server에서 요청을 받아 어느 노드에 컨테이너를 배치할지 스케줄러에게 요청
  • control-plane의 스케줄러가 노드의 상태를 보고 적합한 노드를 선택해 rest api server에게 응답
  • control-plane의 rest api server가 응답 받은 내용을 실행할 노드의 kubelet에 요청(전달)
  • kublet이 요청을 받아 도커 명령어로 바꿔서 도커에게 실제 컨테이너 실행 요청
  • 도커가 저장소에서 컨테이너 이미지를 검색한 후 컨테이너로 실행한 후 pod라는 단위로 관리

 

쿠버네티스 컴포넌트

쿠버네티스 아키텍처

  • 마스터 컴포넌트
    • etcd
      • key-value 타입의 저장소
      • 워크 노드에대한 상태 정보 포함
        • 하드 정보, 도커 컨테이너 동작 상태 등
      • 쿠버네티스 상태 정보 포함
      • api에 워크노드 정보 제공
    • kube-apiserver
      • k8s API를 사용하도록 요청을 받고 요청이 유효한지 검사
      • 모든 요청을 관리
    • kube-scheduler
      • 파드를 실행할 노드 선택
    • kube-controller-manager
      • 파드를 관찰하며 개수를 보장
        • 기존 컨테이너 동작 중인 파드 다운시 다른 파드에서 동작할 수 있게 api에 요청
    • CoreDNS
      • 애드온 프로그램
  • 워커 노드 컴포넌트
    • kubelet
      • 모든 노드에서 실행되는 k8s 에이전트
      • 데몬 형태로 동작
      • cAdvisor 컨테이너 모니터링 툴이 포함됨
        • 컨테이너, 하드 상태 정보 수집
    • kube-proxy
      • k8s의 network 동작을 관리
      • iptables rule을 구성
      • 실제 컨테이너를 실행해주는 역할
    • 컨테이너 런타임
      • 컨테이너를 실행하는 엔진
      • docker, containerd, runc
  • 애드온 프로그램
    • 네트워크 애드온
      • CNI(Container network interface
        • 네트워크 간 통신 지원
        • weave, calico, flaneld, kube-route 등
    • dns 애드온
      • coreDNS
    • 대시보드 애드온
      • 웹 UI
      • 쿠버네티스 전체 관리
    • 컨테이너 자원 모니터링
      • cAdvisor
    • 클러스터 로깅
      • 컨테이너 로그, k8s 운영 로그들은 수집해서 중앙화
        • 마스터 노드 여러개, 워크 노드 여러개인 경우
      • ELK(ElasticSearch, Logstash, Kibana), EFK(ElasticSearch, Fluentd, Kibana), DataDog 

 

Reference

따배쿠6강

 

반응형