본문 바로가기

IT Study/Kubernetes

kubernetes ? 쿠버네티스?

쿠버네티스란?

https://ko.wikipedia.org/wiki/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4

 

쿠버네티스 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 쿠버네티스(Kubernetes, 쿠베르네테스, "K8s"[4])는 컨테이너화된 애플리케이션의 자동 디플로이, 스케일링 등을 제공하는 관리시스템으로, 오픈 소스 기반이다.[5]

ko.wikipedia.org

 

그리스어로 키잡이를 뜻하는 쿠버네티스(kubernetes) 또는 k8s (kubernetes) 라고 불린다.

 

쿠버네티스 (k8s)

->  Google의 사내운영시스템 소스로 제작되었으며 많은기업과 개발자들이 참여하여 발전시키고

     다양한곳에서 사용되고있는 오픈소스

 

-> Container로 구성된 APP을 배포자동화 / 오토스케일링 / 롤링업데이트 / 모니터링/로드밸런싱 / 스케줄링 등등

     다양한형태로 효율적으로 운영할수있는  오케스트레이션 도구

 

 

 

쿠버네티스 Architecture &  Components

출처: https://www.aquasec.com/cloud-native-academy/kubernetes-101/kubernetes-architecture/

 

쿠버네티스의 구조는 생각보다 간단한 구조를 갖고있다.

전체를 관리하는 Master node와 container가 배포되는 worker node로 구성되어있으며

클러스터를 조금더 안정적으로 운영하려면 마스터를 5대로 구성하여 운영할수도있다.

worker node 또한 운영여건에 따라 늘리거나 줄여서 운영할수있다.

 


<Master node 컴포넌트 >

●클러스터 통합관리의 메인

●etcd

●kube-apiserver

●kube-scheduler

●kube-controller-manager

 

kube-apiserver

-> 쿠버네티스의 모든 요청,명령,제어를 수행하고 관련내용이 유효한지 검증하며 etcd와 유일하게  상호작용하는 컴포넌트

    #kubectl [command] [type] [name] [flags] 

 

etcd

-> key-value 타입저장소 , worker node들의 H/W정보,이미지상태 등 모든클러스터의 데이터가 저장되어있는 곳

 

kube-scheduler

-> 새로운 파드가 생성되려고 할때 CPU,MEM등 Worker node의 H/W상태를 체크,점검하여

    포드의 리소스,요구사항에 맞춰 적절한 노드를 선택하여 할당해주는 역할

 

kube-controller-manager

-> 쿠버네티스의 전체클러스터를 관리하는 역할을 하며 Node,Replication Controller 등등 여러 컨트롤러가 있고

    노드가 다운되었을때 감지와 대응에 관한 역할 , 지정한 파드의 갯수를 맞춰 관리하는 역할 등.

    


<Worker Node 컴포넌트>

●kubelet

●kube-proxy

●Container Runtime

 

 

kubelet

-> 데몬형태이며 쿠버네티스 클러스터의 모든 노드에서 실행되며 파드 스펙을 전달받아 컨테이너가 실행되는 것을

    관리하는 역할로 쿠버네티스로 만들어진 컨테이너만 관리함

 

kube-proxy

-> 노드에서 실행되는 가상의 네트워크를 관리하는 역할

 

Container Runtime

-> 컨테이너의 실행을 담당하는 소프트웨어 이며 docker,containered,CRI-O ,rkt,runc같은 런타임도 지원함

 


<Addon>

클러스터의 확장기능을 제공

 

●네트워크 애드온 (CNI : Container Network Interface)

●DNS 애드온

●대시보드 애드온

●컨테이너 자원모니터링 애드온

●클러스터 로깅 애드온

 

 

네트워크 애드온

-> 컨테이너간 통신을 지원하는 VxLAN,POD Network 라고 부름 (내부통신)

     kube-proxy가 관리하지만 보다 효율적은 환경,관리를 구성하기 위해 

     다양한 종류의 플러그인이 존재 ( Ingress, Flannel, ACI, Calico, Canal 등등...)

 

DNS 애드온

->필수적인 애드온이며 쿠버네티스 클러스터내에서 동작하는 DNS Server.

    쿠버네티스 내부에서 실행된 컨테이너는 자동으로 DNS에 등록되어 자동탐색 가능

    (CoreDNS,kube-dns등)

 

대시보드 애드온 (기본으로 설치되어있지 않음)

-> Web UI기반 가시화된 관리편의성을 제공하기위한 애드온

   (kubernetes Dashboard , Weave Scope 등)

 

컨테이너 자원모니터링 애드온

->클러스터 내부에서 동작하고있는 컨테이너들의 H/W 정보,리소스등을 저장하고 모니터링할수있는 애드온

   (Grafana,cAdvisor,Prometheus 등)

 

클러스터 로깅 애드온 (기본으로 설치되어있지 않음)

->클러스터 내부에서 기록되는 모든 log를 중앙관리 할 수 있는 애드온

    (ELK,EFK 등)

'IT Study > Kubernetes' 카테고리의 다른 글

kubernetes init container  (0) 2023.01.11
kubernetes Probe? self-healing  (0) 2023.01.11
kubernetes pod  (0) 2023.01.07
kubernetes yaml  (0) 2023.01.06
kubernetes namespace  (0) 2023.01.05