쿠버네티스: Difference between revisions
From IT Wiki
No edit summary |
No edit summary |
||
(6 intermediate revisions by 5 users not shown) | |||
Line 3: | Line 3: | ||
; 컨테이너 기반 가상화 관리용 시스템 | ; 컨테이너 기반 가상화 관리용 시스템 | ||
== 구성 == | |||
* ''' | 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하는 생태계를 가지고 있다. 쿠버네티스 서비스, 지원 그리고 도구들은 광범위하게 제공된다. | ||
* | |||
** | == 쿠버네티스 아키텍처 == | ||
** | [[파일:쿠버네티스 아키텍처.png]] | ||
* '''워커 노드''' | |||
** Kubelet | == 아키텍처 구성 == | ||
** 포드 | |||
=== 쿠버네티스 마스터 (Kubernetes Master) === | |||
마스터는 클러스터 관리의 중심 역할을 하며, 주로 제어, 관리, 통신 기능을 담당하는 구성 요소를 포함한다. | |||
* '''API 서버''': 통신의 핵심, 사용자 및 시스템이 클러스터와 상호작용하는 인터페이스 | |||
* '''컨트롤러 매니저''': 노드 및 포드 상태 유지 관리 | |||
* '''스케줄러''': 워커 노드에 포드를 배치 | |||
* '''Etcd''': 클러스터 상태 및 메타데이터 저장소 | |||
=== 컨테이너 런타임 (Container Runtime) === | |||
컨테이너 런타임은 워커 노드에서 포드 내부의 컨테이너들을 실제로 실행하는 환경을 제공한다. | |||
* '''컨테이너''': 애플리케이션이 실행되는 가장 작은 단위로, 쿠버네티스에서 포드 내에서 실행된다. | |||
** '''Docker''', '''Containerd''', '''CRI-O''': 쿠버네티스가 지원하는 다양한 컨테이너 런타임들 | |||
=== 워커 노드 (Worker Node) === | |||
실제 애플리케이션이 실행되는 곳으로, 여러 자원 관리를 수행하는 하위 시스템이 포함된다. | |||
* '''Kubelet''': 워커 노드에서 API 서버와 상호작용하며, 포드를 관리하고 배포 | |||
* '''Kube-Proxy''': 네트워크 트래픽 및 로드 밸런싱 관리 | |||
* '''포드 (Pod)''': 작업의 단위, 애플리케이션이 실행되는 컨테이너들을 포함함 | |||
* '''서비스 (Service)''': 외부 클라이언트와 내부 포드 간 통신을 위한 로드밸런싱과 네트워크 엔드포인트를 정의 | |||
== 애플리케이션 및 네트워크 단위 == | |||
표면적으로 사용자가 접하는 애플리케이션 및 네트워크 단위를 상대적으로 상위 개념부터 나열하면 아래와 같다. | |||
'''클러스터 (Cluster)''' | |||
* 쿠버네티스의 가장 큰 개념으로, 여러 노드(서버)로 구성된다. 클라우드 서비스에서도 쿠버네티스를 사용하기 위해선 먼저 클러스터를 생성한다. | |||
* 클러스터는 쿠버네티스 마스터와 여러 워커 노드를 포함하며, 이들이 함께 동작해 애플리케이션을 실행한다. | |||
'''네임스페이스 (Namespace)''' | |||
* 클러스터 안에서 논리적으로 리소스를 구분하는 단위이다. | |||
* 네임스페이스는 여러 팀이나 애플리케이션이 동일 클러스터에서 격리된 상태로 동작할 수 있게 한다. | |||
'''마스터 (Master)''' | |||
* 클러스터를 제어하고 관리하는 노드로 클러스터 전체의 상태와 애플리케이션 배포를 관리하는 역할을 한다. | |||
* 마스터는 여러 컴포넌트(API 서버, 스케줄러, 컨트롤러 매니저, Etcd)를 실행하는 노드이다. | |||
'''워커 노드 (Worker Node)''' | |||
* 클러스터 내에서 실제 애플리케이션이 실행되는 노드 | |||
* 워커 노드는 컨테이너 런타임, Kubelet, Kube-Proxy 등의 컴포넌트를 포함하며, 포드를 실행하는 역할을 한다. | |||
'''디플로이먼트 (Deployment)''' | |||
* 포드의 상태를 관리하는 상위 개념으로, 포드의 업데이트, 복구, 스케일링 등을 관리한다. | |||
* 디플로이먼트는 포드의 선언적 관리를 제공하며, 애플리케이션의 안정적 배포를 위해 사용된다. | |||
'''레플리카셋 (ReplicaSet)''' | |||
* 디플로이먼트가 관리하는 개념으로, 여러 포드의 복제본을 유지하는 역할을 한다. | |||
* 이를 통해 애플리케이션이 항상 특정 수의 포드를 유지하며 실행될 수 있도록 한다. | |||
'''포드 (Pod)''' | |||
* 쿠버네티스의 가장 작은 배포 단위로, 하나 이상의 컨테이너를 포함한다. | |||
* 포드는 실제 애플리케이션의 실행 환경을 제공하며, 여러 컨테이너가 협력해 작업을 처리한다. | |||
'''컨테이너 (Container)''' | |||
* 포드 내부에서 실행되는 애플리케이션 단위로, 실제로 애플리케이션 코드를 실행하는 환경이다. | |||
* 컨테이너는 가상화된 독립 환경에서 동작하며, 포드가 이 컨테이너를 관리한다. | |||
'''서비스 (Service)''' | |||
* 포드가 외부나 클러스터 내에서 네트워크 통신을 할 수 있도록 하는 추상화된 네트워크 엔드포인트이다. | |||
* 포드의 IP 주소가 변하더라도 서비스가 이를 해결하여 외부 통신이 가능하게 해준다. | |||
=== (참고) 계층 구조 === | |||
# 클러스터 | |||
#* 네임스페이스 | |||
#* 마스터 노드 | |||
#* 워커 노드 | |||
#** 포드 | |||
#*** 컨테이너 | |||
# 디플로이먼트 | |||
#* 레플리카셋 | |||
#** 포드 | |||
#*** 컨테이너 | |||
# 서비스 (포드의 네트워킹을 담당) | |||
== 현황 == | == 현황 == |
Latest revision as of 02:08, 3 October 2024
- Kubernetes
- 컨테이너 기반 가상화 관리용 시스템
쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하는 생태계를 가지고 있다. 쿠버네티스 서비스, 지원 그리고 도구들은 광범위하게 제공된다.
쿠버네티스 아키텍처[edit | edit source]
아키텍처 구성[edit | edit source]
쿠버네티스 마스터 (Kubernetes Master)[edit | edit source]
마스터는 클러스터 관리의 중심 역할을 하며, 주로 제어, 관리, 통신 기능을 담당하는 구성 요소를 포함한다.
- API 서버: 통신의 핵심, 사용자 및 시스템이 클러스터와 상호작용하는 인터페이스
- 컨트롤러 매니저: 노드 및 포드 상태 유지 관리
- 스케줄러: 워커 노드에 포드를 배치
- Etcd: 클러스터 상태 및 메타데이터 저장소
컨테이너 런타임 (Container Runtime)[edit | edit source]
컨테이너 런타임은 워커 노드에서 포드 내부의 컨테이너들을 실제로 실행하는 환경을 제공한다.
- 컨테이너: 애플리케이션이 실행되는 가장 작은 단위로, 쿠버네티스에서 포드 내에서 실행된다.
- Docker, Containerd, CRI-O: 쿠버네티스가 지원하는 다양한 컨테이너 런타임들
워커 노드 (Worker Node)[edit | edit source]
실제 애플리케이션이 실행되는 곳으로, 여러 자원 관리를 수행하는 하위 시스템이 포함된다.
- Kubelet: 워커 노드에서 API 서버와 상호작용하며, 포드를 관리하고 배포
- Kube-Proxy: 네트워크 트래픽 및 로드 밸런싱 관리
- 포드 (Pod): 작업의 단위, 애플리케이션이 실행되는 컨테이너들을 포함함
- 서비스 (Service): 외부 클라이언트와 내부 포드 간 통신을 위한 로드밸런싱과 네트워크 엔드포인트를 정의
애플리케이션 및 네트워크 단위[edit | edit source]
표면적으로 사용자가 접하는 애플리케이션 및 네트워크 단위를 상대적으로 상위 개념부터 나열하면 아래와 같다.
클러스터 (Cluster)
- 쿠버네티스의 가장 큰 개념으로, 여러 노드(서버)로 구성된다. 클라우드 서비스에서도 쿠버네티스를 사용하기 위해선 먼저 클러스터를 생성한다.
- 클러스터는 쿠버네티스 마스터와 여러 워커 노드를 포함하며, 이들이 함께 동작해 애플리케이션을 실행한다.
네임스페이스 (Namespace)
- 클러스터 안에서 논리적으로 리소스를 구분하는 단위이다.
- 네임스페이스는 여러 팀이나 애플리케이션이 동일 클러스터에서 격리된 상태로 동작할 수 있게 한다.
마스터 (Master)
- 클러스터를 제어하고 관리하는 노드로 클러스터 전체의 상태와 애플리케이션 배포를 관리하는 역할을 한다.
- 마스터는 여러 컴포넌트(API 서버, 스케줄러, 컨트롤러 매니저, Etcd)를 실행하는 노드이다.
워커 노드 (Worker Node)
- 클러스터 내에서 실제 애플리케이션이 실행되는 노드
- 워커 노드는 컨테이너 런타임, Kubelet, Kube-Proxy 등의 컴포넌트를 포함하며, 포드를 실행하는 역할을 한다.
디플로이먼트 (Deployment)
- 포드의 상태를 관리하는 상위 개념으로, 포드의 업데이트, 복구, 스케일링 등을 관리한다.
- 디플로이먼트는 포드의 선언적 관리를 제공하며, 애플리케이션의 안정적 배포를 위해 사용된다.
레플리카셋 (ReplicaSet)
- 디플로이먼트가 관리하는 개념으로, 여러 포드의 복제본을 유지하는 역할을 한다.
- 이를 통해 애플리케이션이 항상 특정 수의 포드를 유지하며 실행될 수 있도록 한다.
포드 (Pod)
- 쿠버네티스의 가장 작은 배포 단위로, 하나 이상의 컨테이너를 포함한다.
- 포드는 실제 애플리케이션의 실행 환경을 제공하며, 여러 컨테이너가 협력해 작업을 처리한다.
컨테이너 (Container)
- 포드 내부에서 실행되는 애플리케이션 단위로, 실제로 애플리케이션 코드를 실행하는 환경이다.
- 컨테이너는 가상화된 독립 환경에서 동작하며, 포드가 이 컨테이너를 관리한다.
서비스 (Service)
- 포드가 외부나 클러스터 내에서 네트워크 통신을 할 수 있도록 하는 추상화된 네트워크 엔드포인트이다.
- 포드의 IP 주소가 변하더라도 서비스가 이를 해결하여 외부 통신이 가능하게 해준다.
(참고) 계층 구조[edit | edit source]
- 클러스터
- 네임스페이스
- 마스터 노드
- 워커 노드
- 포드
- 컨테이너
- 포드
- 디플로이먼트
- 레플리카셋
- 포드
- 컨테이너
- 포드
- 레플리카셋
- 서비스 (포드의 네트워킹을 담당)
현황[edit | edit source]
- IBM, MS, 오라클 등의 CSP에서 쿠버네티스 지원