“Connecting the dots”

Kubernetes 본문

8주차

Kubernetes

kims1997 2022. 12. 21. 18:12
반응형

Kubernetes??


1. 쿠버네티스(Kubernetes)란?


우리가 단일 서버에서 도커를 사용하게 된다면 오케스트레이션이라 불리는 쿠버네티스를 사용할 이유가 전혀 없다 단일서버에서 도커는 간단한 명령어로 컨테이너를 만들기 때문에 전혀 어려울것이 없다 

 

반면에 두 개 이상의 서버에서 도커 데몬을 사용하면 혹은 10대 이상 서버에서 도커를 사용하게 되면 Idle 상태인 서버를 선택하여 해당 서버에 컨테이너를 생성하여 운용하여 합니다  그것을 일일이 각 서버에 접근하여 유휴 자원을 확인하는 것은 정말 비효율적이다 그래서 kubernetes와 같은 오케스트레이션 툴이 나왔다

 


2. kubernetes 목적


다중의 도커 서버를 하나의 prod로 구성 kuberments 는 다중 서버의 도커 데몬에 연결하여 사용 사용자는 사용하는 서버에 서버가 몇 개인지 도커 컨테이너가 몇개 실행중인 알 필요가 없다

두 개의 워커 노드에 3개의 container 를 생성하게 되면 쿠버네티스에서 알아서 컨테이너를 A서버와 B 서버에게 할당하게 됩니다 Idle 상태인 서버를 직접 찾을 필요가 없다 

A서버와 B서버 와이 컨테이너 통신

각 서버 컨테이너는 각각의 private ip 가 있는데 A 서버와 B 서버에 있는 컨테이너 간의 통신은 kube-proxy 등을 통해 통신이 가능

 

컨테이너 재 생성

단일 서버에서 도커 컨테이너 생성하다 운영하다 보면 불편한 상황을 마주한다 서버가 다운되거나 fail 되어 exit 상태로 빠져 나가는 경우 쿠버네티스는 이 상황을 방지하여 동일한 컨테이너를 생성하고 서비스를 지속적으로 제공한다

Load Balance

kubernetss 클러스터로 생성된 웹사이트에 3개의 컨터이너가 동작하고 웹사이트의 public ip로 사용자가 접근 container1 > container2 >container3  접근할 수 있도록 round-robin형태의 로드벨런싱이 제공된다


3. kubernetes 용어


master :

마스터 노드 , 다중 도커데몬을 관리하는 일을한다

 

worker:

도커가 설치되어 있으며 실제 컨테이너들이 생성되어 일하는 노드 예전에는 minion 이름을 가지기도 한다

 

pod:

kubernetes  의 기본 단위이다 컨테이너 혹은 컨테이너의 묶음 pod는 아직 까지는 간단하게 컨테이너이다

 

rc:

rc는 replication controller의 줄임말인데요. pod를 자동으로 생성 복제해주는 컨트롤러입니다. 복제 개수 설정을 3으로 하게 되면 3개의 pod가 서비스상에 계속 active상태가 됩니다.

 

service:

pod의 group을 식별하는 라벨이라는 기준에 따라 pod들을 하나의 서비스로 외보에서 접근할 수 있도록 해줍니다.

 

yaml:

kubenets에서 service, rc, pod등 기능을 설명한 데이터 형식 코드입니다. 야믈이라고 읽습니다.

 


4. kubernetes components


Master Node 

쿠버네티스 주요 컨트롤 유닛으로서 worker nodes를 관리 하는 주체 이다 클러스터에 관한 전번적인 결정 이벤트를 감지 및 반응하는 역할

Worker Node

워커노드는 할당된 task를 요청대로 수행하는 시스템이다 컨테이너들간의 너크워크 서비스에 필요한 전반적인 일을 마스터 노드와 통신하여 수행

 

Master

kubectl, api server, scheduler, controller manager, etcd

 

worker

kubelet, kube-proxy, pod

 

Kubectl

마스터 노드와 통신하는 명령어로서 쿠버네티스 API를 사용해서 마스터노드와 상호작용을 합니다.

 

API Server

REST API 요청을 처리하고 쿠버네티스 클러스터를 구성하는 각 컴포넌트들과 통신을 담당합니다.

 

Scheduler

노드들의 리소스 상태를 파악하여 pod가 배치될 적절한 노드를 선택해 주는 역할.

 

Controller Manager

쿠버네티스 클러스터 상태 감시, 설정한 상태로 유지하는 역할.

 

ETCD

오픈소스 key-value 저장소로서 Kubernetes에서는 Master Node의 API Server가 HTTP/JSON API를 이용하여 접근할 수 있는 구성 데이터를 저장하는 용도로 사용됩니다.

 

Kubelet

쿠버네티스 마스터 노드간의 통신을 담당하는 에이전트로서 노드에서 동작하는 pod들을 관리합니다.

 

Kube-proxy

각 노드별로 탑재되며 네트워크 프록시 및 로드밸런서 역할을 해줍니다. Pod- Pod는 컨테이너의 그룹으로 한 개 또는 여러 개의 컨테이너를 포함하는 쿠버네티스의 작업단위 입니다.

반응형

'8주차' 카테고리의 다른 글

8주를 돌아보며  (0) 2022.12.23
gitflow, workflow  (0) 2022.12.23
CI/CD  (0) 2022.12.22
서버리스  (1) 2022.12.22