쿠버네티스의 핵심 키워드 10가지
1. 파드(Pod)
- 가장 기본적인 쿠버네티스 오브젝트로, 하나 이상의 컨테이너를 포함할 수 있습니다.
- 파드는 컨테이너들이 함께 배치되고 스케줄링되는 단위입니다.
- 각 파드는 고유한 IP 주소를 가지며, 파드 내의 컨테이너들은 스토리지와 네트워크를 공유합니다.
파드의 핵심 특징
- 컨테이너 그룹핑
- 파드는 하나 이상의 관련된 컨테이너를 그룹화 합니다.
- 이 컨테이너들은 동일한 파드 내에서 실행되며, 같은 네트워크 및 스토리지 리소스를 공유합니다.
- 공유된 리소스와 통신
- 파드 내의 컨테이너들은 같은 IP 주소와 포트 공간을 공유하고, 'localhost'를 통해 서로 통신할 수 있습니다.
- 파드 수준에서 볼룸을 정의 하여 컨테이너 간에 데이터를 공유할 수 있습니다.
- 일시적인 엔티티
- 파드는 일시적인 엔티티입니다.
- 파드가 속한 노드에 장애가 발생하면, 파드 내의 컨테이너는 복구되지 않습니다.
- 대신, 쿠버네티스는 동일한 파드를 다른 노드에 자동으로 재생성할 수 있습니다.
- 독립적인 배포
- 각 파드는 독립적으로 생성, 삭제, 복제 될 수 있습니다.
- 이는 쿠버네티스가 파드를 확장하거나 축소하는 데 사용하는 기본 단위 입니다.
2. 서비스 (Service)
- 파드는 일시적이므로, 서비스를 통해 안정적인 네트워크 주소를 제공합니다.
- 서비스는 파드 그룹에 대한 지속적인 접근 지접을 설정하고, 로드 벨런싱, 서비스 발견 등의 기능을 제공합니다.
3. 노드 (Node)
- 쿠버네티스에서 파드가 배포되는 물리적 또는 가상의 기계입니다.
- 클러스터의 각 노드는 마스터에 의해 관리되며, 파드를 실행하기 위한 리소스 (메모리, CPU 등)을 제공합니다.
4. 클러스터 (Cluster)
- 쿠버네티스 시스템에서 모든 활동이 일어나는 환경입니다.
- 클러스터는 노드의 집합으로 구성되며, 애플리케이션을 실행하고 관리하는 데 필요한 리소스를 제공합니다.
5. 마스터 (Master)
- 클러스터의 관리를 담당하는 노드로, 클러스터의 상태를 유지하고, 스케줄링, 오케스트레이션, 클러스터 상태의 관리 등의 역할을 합니다.
6. 네임스페이스 (Namespace)
- 쿠버네티스 클러스터 내의 가상 분할을 제공하여, 다양한 팀이나 프로젝트 간의 리소스를 격리할 수 있습니다.
- 네임스페이스를 사용하면 하나의 클러스터를 여러 가상 클러스터 처럼 사용할 수 있습니다.
7. 배포 (Deployment)
- 파드와 레플리카셋의 선언적 업데이트를 관리합니다.
- 배포를 통해 애플리케이션을 배포하고, 스케일링하며, 업데이트를 자동화할 수 있습니다.
8. 레플리카셋 (ReplicaSet)
- 지정된 수의 파드 복제본이 실행되고 있는지를 보장합니다.
- 이는 시스템의 복원력을 높이고, 여러 인스턴스를 통해 부하를 분산시키는 데 사용됩니다.
9. 컨피그맵 (ConfigMap) 및 시크릿 (Secret)
- 애플리케이션 구성 정보를 파드에 제공하는 방법 입니다.
- ConfigMap은 환경 설정과 같은 비-민감 정보를 저장하고 Secret은 비밀번호, 토큰, 키 등의 민감 정보를 저장합니다.
10. 볼륨(Volume)
- 디스크 스토리지나 다른 저장 매체를 파드에 연결하는 방법입니다.
- 볼륨은 데이터의 영속성을 제공하고, 여러 컨테이너 간에 데이터를 공유할 수 있게 해줍니다.
노드, 클러스터, 네임스페이스의 관계
- 클러스터(Cluster)
- 정의 : 쿠버네티스 클러스터는 컨테이너화된 애플리케이션을 실행하기 위한 노드들의 집합입니다. 클러스터는 애플리케이션을 배포하고 관리하는 데 필요한 컴퓨팅, 네트워킹, 스토리지 리소스를 제공합니다.
- 역할 : 클러스터는 여러 노드를 하나의 단위로 관리하며, 고가용성, 확장성, 부하 분산 등을 제공합니다. 클러스터는 애플리케이션의 실행을 위한 물리적 또는 가상의 인프라를 추상화하고, 이를 통합 관리합니다.
- 노드(Node)
- 정의: 노드는 클러스터의 기본 작업 단위입니다. 각 노드는 물리적 또는 가상의 기계로, 쿠버네티스에 의해 관리되며, 컨테이너화된 애플리케이션(파드)을 실행합니다.
- 종류
- 마스터 노드(Master Node): 클러스터의 관리 및 조정을 담당합니다. API 서버, 스케줄러, 컨트롤러 매니저 등의 중요한 컴포넌트가 실행됩니다.
- 워커 노드(Worker Node): 실제로 애플리케이션(파드)이 배포되고 실행되는 노드입니다.
- 역할: 노드는 파드의 실행 환경을 제공합니다. 각 노드는 CPU, 메모리, 스토리지, 네트워킹 등의 리소스를 가지며, 이 리소스들은 파드에 할당됩니다.
- 네임스페이스(Namespace)
- 정의: 네임스페이스는 쿠버네티스 클러스터 내에서 리소스를 분리하고 구분하는 데 사용되는 가상의 클러스터입니다.
- 역할: 네임스페이스는 클러스터 내의 리소스를 여러 사용자나 팀 간에 격리하는 데 사용됩니다. 이를 통해 각 팀이나 애플리케이션은 독립적인 환경에서 작업할 수 있으며, 리소스 관리, 접근 권한, 리소스 할당량(Quota) 등을 개별적으로 설정할 수 있습니다.
각각의 관계
클러스터와 노드: 클러스터는 여러 노드(마스터 및 워커)로 구성됩니다. 클러스터는 이 노드들을 통합 관리하며, 노드들은 클러스터에 리소스와 실행 환경을 제공합니다.
클러스터와 네임스페이스: 클러스터 내에서 네임스페이스는 리소스와 사용자를 논리적으로 분리합니다. 하나의 클러스터는 여러 네임스페이스를 가질 수 있으며, 각 네임스페이스는 독립적인 권한, 리소스 할당, 정책을 가질 수 있습니다.
노드와 네임스페이스: 노드는 물리적인 리소스를 제공하는 반면, 네임스페이스는 이 리소스들이 할당되고 관리되는 방식을 정의합니다. 네임스페이스는 노드에 직접적으로 할당되지 않지만, 네임스페이스 내의 파드는 특정 노드에 배포될 수 있습니다.
'클라우드&인프라 > 클라우드 공부' 카테고리의 다른 글
멀티 클라우드의 중요 기술 설명 (0) | 2023.11.11 |
---|---|
까먹으면 찾아보는 클라우드 용어 정리 (2) (0) | 2023.11.11 |
까먹으면 찾아보는 클라우드 용어 정리 (1) (0) | 2023.11.11 |