Kubernetes

박찬효·2022년 10월 24일
0

Kubernetes??

쿠버네티스는 컨테이너 관리자로 컨테이너 운영을 자동화하기 위한 도구입니다. 쿠버네티스와 동일한 기능을 하는 도구에는 메소스,도커스웜등이 있습니다. 이런 도구를 컨테이너 오케스트레이션 도구라 하며, 많은 수의 컨테이너를 협조적으로 연동시키기 위한 통합 시스템이며 이 컨테이너를 다루기 위한 API 및 명령행 도구등이 함께 제공됩니다.

쿠버네티스로 실행하는 애플리케이션은 애플리케이션을 구성하는 다양한 리소스가 함께 연동해 동작하게 됩니다. 여기서 말하는 쿠버네티스의 리소스란 애플리케이션을 구성하는 부품과 같은 것으로 노드,네임스페이스,파스 등이 있습니다.

Cluster ?

Kubernetes 클로스터는 Kubernetes의 여러 리소스를 관리하기 위한 집합체를 말합니다. Kubernetes 리소스 중에서 가장 큰 개념은 노드 (node)입니다. 노드(node)는 클러스터의 관리 대상으로 등록된 도커 호스트로, 도커 컨테이너가 배치되는 대상입니다.

Kubernetes 클로스터 전체를 관리하는 서버인 마스터가 적어도 하나 이상 있어야 하며, 하나 이상이라는 의미는 클러스터가 작동하기 위한 최소 조건이지만 실제 프러덕 환경에서는 절대 하나로 클러스터를 구성하지 않으며, 최소 3개이상의 마스터 노드를 갖게 됩니다.

Node & Master Node ??

Master Node

Kubernetes Cluster 전체를 컨트롤하는 역할로 API서버, 스케쥴러, 컨트롤러 매니저, etcd로 구성됩니다.

  • API : 모든 명령과 통신을 API를 통해서 합니다. 모든 기능은 REST API로 제공하고 그에 따른 명령을 처리합니다.

  • Etec (정보 저장) : Cluster의 데이터베이스 역할로 서버로 설정값이나 클러스터의 상태를 저장하고 따라서 분산형 Key/Value 형식이고 오픈 소스이며, 빠른 응답과 신뢰성등의 장점이 있습니다.

  • 스케쥴러 : 파드나 서비스들을 적절한 노드에 저장하게 정리해주는 역할을 합니다.

  • 컨트롤러 매니져 : Replica controller, Service controller, Volume Controller, Node conteroller를 생성하고 각 노드에 배포하여 관리합니다.

Node

Node 영역은 노드 안의 파드(Pod)들을 구동시키기 위한 구성 요소들에 해당하며, 이들은 워커노드 와 마스터 노드 모두 공통적으로 갖고 있습니다. 해당 구성 요소로는

  • kubelet : 클러스터의 각 노드에서 API 서버를 통해 들어오는 신호르 모니터링하고 파드에서 컨테이너가 제 기능대로 정상 동작하도록 관리하는 에이전트라고 보시면 될꺼 같습니다.

  • kube-proxy: 클러스터의 각 노드에서 실행되는 네트워크 프록시 서비스입니다.

  • container-runtime-engine: 노드에 배포된 파드 내 컨테이너들을 구동 시키는 엔진입니다.
    - 파드 (Pod)는 클러스터 안에서 배포되는 가장 작은 단위의 객체로 하나 이상의 컨테이너를 포함 하고 있습니다.

profile
개발자가 되기 위한 1인

0개의 댓글