Kubernetes 는 무엇인가요?

작성자 이경미 수정일 2022-12-23 16:22

들어가며

  • 쿠버네티스의 개념과 활용 방법에 대해 알 수 있습니다. 



내용

쿠버네티스는 K8s 라고도 불리며 컨테이너를 다루는 도구입니다. 

수동으로 관리하던 프로세스를 컨테이너로 구성된 애플리케이션을 통해 관리부터 배포, 확장까지 자동화하는 오픈 소스 플랫폼 입니다. 



그렇다면 쿠버네티스를 특징은 무엇일까요?


첫번째로 "자동화된 롤아웃과 롤백" 입니다. 

쿠버네티스는 애플리케이션 동작을 원하는 상태로 만들고 유지하기위해 모니터링합니다. 이로인해 문제가 발생해도 변경사항을 저장하고있어 모든 인스턴스가 동시에 종료되지않고 롤백될 수 있도록 합니다. 


두번째는 "자가치유" 입니다. 

애플리케이션의 기능 중 특정 컨테이너에 장애가 발생하면 컨테이너를 자동적으로 재생성을 시도합니다. 노드에 장애가 발생한 경우에도 해당 노드에 올라온 컨테이너들을 다시 스케줄링하여 애플리케이션이 정상 작동할 수 있도록 합니다.


세번째는 "클러스터 단위 중앙 제어" 입니다. 

쿠버네티스에서는 물리 리소스를 클러스터 단위로 추상화하여 관리합니다. 클러스터 내부에는 클러스터의 구성요소들을 관리할 수 있도록  master 노드를 Control Plane 으로 지정합니다. 관리자는 이 마스터 노드를 이용하여 클러스터 전체를 제어할 수 있습니다. 

  1. 컨트롤 플레인 구성 요소
    • etcd 분산 데이터 스토리지
    • kube-apiserver
    • kube-controller-manager
    • kube-scheduler
  2. 워커 노드 구성 요소
    • kubelet
    • kube-proxy
    • contaier runtime (docker, crio 등)


네번째는 "그룹화" 입니다. 

쿠버네티스 구성요소를 Label 을 기준으로 유연하게 관리할 수 있습니다. 어노테이션에 기재된 내용을 참고하여 해당 요소의 특징적인 내역을 추적할 수 있습니다. 


다섯번째는 "선언형 API 기반의 통신" 입니다. 

쿠버네티스의 구성요소는 모두 kube-apiserver 를 통해 상호접근이 가능합니다. 따라서 마스터 및 워커 노드는 kubelet 또는 kube-proxy가 kube-apiserver 를 바라보게 됩니다.



쿠버네티스 동작 방식

쿠버네티스의 클러스터는 control plane 과 워커노드로 구성됩니다.  (control plane : master node)



1. client 요청

    kubectl 명령어를 통해 클라이언트가 클러스터에 요청을 보냅니다. 


2. etcd 저장

    client 의 요청이 들어오면 control plane 의 kube-apiserver 가 먼저 요청을 받고 분산 저장소인 etcd 에 저장합니다. 


3. controller

    controller 는 etcd 에 담당하는 리소스가 들어왔는지 감시하고 자신의 역할인 경우 kube-apiserver 를 통해 스케쥴러에게 동작을 요청합니다. 

   

4. scheduler

    스케쥴러는 동작을 요청받고 사용 가능한 Node 에 pod 를 할당합니다. 이 때, kubelet 과 통신하여 전달합니다. 


5. kubelet

    kubelet 은 전달받은 동작의 수행 (ex. pod 생성) 을 진행합니다. 



아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.

02-558-8300