Kubernetes 실행 정리

2020. 8. 24. 14:58System/Beginner

본 포스트는 쿠버네티스 공식사이트를 출처로 장석된 글입니다.

https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/

 

(1) 쿠버네티스란?

: 쿠버네티스는 배포, 스케일링, 그리고 컨테이너화된 애플리케이션의 관리를 자동화 해주는 오픈 소스 컨테이너 오케스트레이션 엔진이다. 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다.

1) 컨테이너 개발 시대:

컨테이너는 VM과 유사하지만 격리 속성을 완화하여 애플리케이션 간에 운영체제(OS)를 공유한다.

그러므로 VM 가상화 환경보다는 가볍다고 여겨진다. 

2) 왜 쿠버네티스가 필요?

컨테이너는 애플리케이션을 포장하고 실행하는 좋은 방법이다. 

쿠버네티스는 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크를 제공한다. 애플리케이션의 확장과 장애 조치를 처리하고, 배포 패턴 등을 제공한다.

 

(2) 쿠버네티스 컴포넌트

쿠버네티스를 배포하면 클러스터를 얻는다.

클러스터는 일반적으로 여러 노드를 실행

 

1) 쿠버네티스 클러스터란?: 컨테이너화된 애플리케이션을 실행하는 노드라고 하는 워커 머신의 집합.

모든 클러스터는 최소 한 개의 워커 노드를 가진다.

* 파드: 클러스터에서 실행 중인 컨테이너의 집합

 

워커 노드는 애플리케이션의 구성요소인 파드를 호스트한다. 

2) 컨테이너 런타임이란?:

컨테이너 런타임은 컨테이너 실행을 담당하는 소프트웨어이다.

쿠버네티스는 여러 컨테이너 런타임을 지원한다. Docker, containered, CRI-O 그리고 Kubernetes CRI를 구현한 모든 소프트웨어.

 

(3) 쿠버네티스 오브젝트 이해하기

1) 쿠버네티스 오브젝트란?:
쿠버네티스 시스템에서 영속성을 가지는 개체이다.

쿠버네티스는 클러스터의 상태를 나타내기 위해 이 개체를 이용한다.

오브젝트를 생성함으로써, 본인이 클러스터의 워크로드를 어떤 형태로 보이고자 하는지에 대해 효과적으로 쿠버네티스 시스템에 전한다.

생성, 수정, 삭제든 쿠버네티스 오브젝트를 동작시키려면, 부커네티스 API를 이용해야 한다. 

예를들어, kubectl 커맨드-라인 인터페이스를 이용할 때, CLI는 여러분 대신 필요한 쿠버네티스 API를 호출해 준다.

 

오브젝트를 생성하기 위해(직접이든 또는 kubectl을 통해서든) 쿠버네티스 API를 이용할 때, API 요청은 요청 내용 안에 JSON 형식으로 정보를 포함시켜 줘야만 한다. 대부분의 경우 정보를 .yaml 파일로 kubectl에 제공한다. kubectl은 API요청이 이루어질 때, JSON 형식으로 정보를 변환시켜 준다.

 

(4) 파드와 노드

파드는 엉ㄴ제나 노드 상에서 동작한다.

노드는 쿠버네티스에서 워커 머신을 말하며 클러스터에 따라 가상 또는 물리 머신일 수 있다.

각 노드는 마스터에 의해 관리된다.

하나의 노드는 여러 개의 파드를 가질 수 있고, 쿠버네티스 마스터는 클러스터 내 노드를 통해서 파드에 대한 스케쥴링을 자동으로 처리한다.

 

'System > Beginner' 카테고리의 다른 글

K8S: Hadoop, Spark 실습  (0) 2020.08.25
sudo kubectl get nodes 에러 해결법  (0) 2020.08.21
쿠버네티스-하둡 설치  (0) 2020.08.19
Kubernetes Spark, Hadoop 설치하기  (0) 2020.08.18
Kubernetes 에러났을 때  (0) 2020.08.18