쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션을 자동으로 배포, 확장, 관리하기 위한 오픈소스 플랫폼입니다. Google에서 개발한 후 CNCF(Cloud Native Computing Foundation)에 기부된 프로젝트로, 클라우드 네이티브 애플리케이션을 지원하는 핵심 기술로 자리 잡았습니다. 쿠버네티스는 주로 컨테이너 오케스트레이션에 사용되며, Docker와 같은 컨테이너 런타임과 함께 작동합니다.
주요 특징
1. 컨테이너 오케스트레이션
- 여러 컨테이너를 배포하고 네트워크를 연결하며 상태를 모니터링합니다.
2. 자동화된 작업
- 애플리케이션의 배포, 복구, 확장, 축소를 자동으로 수행합니다.
3. 확장성
- 수천 개의 컨테이너를 관리할 수 있으며, 필요에 따라 애플리케이션을 수평적으로 확장 가능합니다.
4. 셀프 힐링(Self-Healing)
- 문제가 있는 컨테이너를 자동으로 재시작하거나 교체합니다.
5. 로드 밸런싱 및 서비스 디스커버리
- 서비스 간 통신을 위해 자동으로 네트워크 경로를 설정하고, 트래픽을 분산합니다.
6. 스토리지 오케스트레이션
- 로컬 스토리지, 퍼블릭 클라우드 스토리지, 네트워크 파일 시스템(NFS) 등 다양한 스토리지 솔루션을 지원합니다.
쿠버네티스의 주요 구성 요소
1. 마스터 노드(Master Node)
- 클러스터를 관리하고 워커 노드를 제어합니다.
- 주요 구성:
- API 서버(kube-apiserver): 클러스터의 REST API 엔드포인트
- 컨트롤러 관리자(kube-controller-manager): 클러스터 상태를 관리
- 스케줄러(kube-scheduler): 워커 노드에 작업을 할당
- ETCD: 클러스터 상태 정보를 저장하는 분산 키-값 저장소
2. 워커 노드(Worker Node)
- 실제로 컨테이너를 실행하는 노드
- 주요 구성:
- Kubelet: 워커 노드에서 실행되며, 컨테이너 실행을 담당
- Kube-proxy: 네트워크 라우팅 및 서비스 간 통신 지원
- 컨테이너 런타임: Docker, containerd 등 컨테이너 실행 환경
쿠버네티스의 주요 리소스
1. Pod
- 쿠버네티스의 가장 작은 배포 단위로, 하나 이상의 컨테이너를 포함
2. Service
- Pod에 대한 네트워크 접근을 제공하는 추상화 레이어
3. Deployment
- Pod와 ReplicaSet을 관리하며 애플리케이션 배포 및 업데이트를 담당
4. ConfigMap & Secret
- 환경설정 데이터를 Pod에 전달하기 위한 리소스
5. Ingress
- 외부 트래픽을 클러스터 내부 서비스로 라우팅
사용 사례
- 마이크로서비스 관리: 여러 서비스 간의 통신 및 독립적 배포
- CI/CD 파이프라인: 지속적 배포와 통합 프로세스 자동화
- 클라우드 네이티브 애플리케이션: 클라우드 환경에서 확장 가능한 애플리케이션 구축
'IT 공통' 카테고리의 다른 글
쿠버네티스(Kubernetes)를 설치 (0) | 2025.01.21 |
---|---|
AIX 파일시스템 사용율 90% 되면 오래된 파일 부터 삭제 (0) | 2025.01.20 |
Apache Tomcat 설치 (0) | 2025.01.18 |
python web 설치 (0) | 2025.01.17 |
wwn 정보 (0) | 2025.01.10 |