k8s architecture

ny0011·2022년 9월 26일
0

k8s

목록 보기
1/3

node(minion)

  • kubernetes가 설치된 machine(물리적으로 or 가상으로)
  • worker machine이기도 함
  • worker machine : k8s로부터 실행된 컨테이너
  • 만약 앱이 있는 node가 실행에 실패한다면?
    • 앱이 중지되고 다른 node가 필요할 것
    • cluster가 필요해짐

cluster

  • 기존에 앱이 실행되던 node가 실행 되지 않을 때 다른 노드를 통해 앱에 접근 가능
  • 다수의 node를 갖고 있으면 부하 분산도 가능
  • cluster를 어떻게 관리하면 될까?
    • master node가 필요함!
  • master node
    • k8s가 설치되어 있고 master로 설정되어 있는 노드
    • cluster 내부의 node를 관찰
    • worker node의 container의 실제 관리자

Component

  • k8s를 설치하면 다음의 component를 설치하는 것임
  • API Server
    • k8s의 프론트엔드의 역할
    • user, 디바이스 관리, CLI 등이 k8s cluster와 상호작용을 하려면 API 서버와 통신하게 됨
  • ETCD service
    • 분산되고 책임있는 key-value 저장소
    • cluster를 관리할 때 사용되는 모든 데이터를 저장
    • cluster 내부에 다수의 master와 다수의 node가 있을 때, etcd는 분산해서 cluster 내의 모든 node의 정보를 저장함
    • master 간에 충돌이 없는 것을 보장하기 위해 lock을 구현해야 함
  • kubelet service
    • cluster의 각 node에서 실행되는 agent
    • 각 node에서 예상대로 container가 실행되고 있는지 확인해야 함
  • Container Runtime
    • container를 실행하는 기반 SW
    • 보통 docker
  • Controller
    • node, container, endpoint가 다운되면 인지하고 알려줌
    • 새 container를 up 하도록 결정함
  • Scheduler
    • worker나 container를 여러 node에 분산함
    • 새로 생성된 컨테이너를 찾아 노드에 할당

Master vs Worker node

  • Master, Worker : k8s를 구성하는 2가지 타입의 server
    • 서버들이 Master, slave로 어떻게 구분될까?
  • worker node : container가 실행되는 곳
    • container runtime(docker), kubelet
      • docker container가 실행되려면 container runtime(docker)을 설치해야 함
      • container runtime 중 docker 외에도 있지만(Rocket or CRIO) 보통 docker를 사용함
      • kubelet agent가 있어야 함
        • master와 상호 작용
        • master에게 worker node의 health info를 전달
        • master에게 받은 요청을 처리
  • master 서버 : kube-apiserver가 있어야 master가 됨
    • etcd, controller, scheduler
      • etcd 프레임워크에서 사용하는 key-value 형태로 정보가 master에 저장됨

kubectl(kube command line tool, kube control)

용도

  • cluster에 앱을 배포하고 관리
  • cluster 정보를 얻기
  • cluster 내의 node의 상태 확인 등등

명령어

kubectl run hello-minikube
  • cluster에 앱을 배포할 때 사용됨
kubectl cluster-info
  • cluster의 정보
kubectl get nodes
  • cluster의 모든 node의 리스트 확인

0개의 댓글