728x90
쿠버네티스
- 구글에서 개발한 컨테이너 오케스트레이션 도구
- 대규모 분산 애플리케이션의 배포/관리/확장을 자동화해주는 오픈 소스 플랫폼
- 컨테이너화된 애플리케이션을 효율적으로 실행하기 위해 사용
도커와 쿠버네티스
도커와 쿠버네티스는 보통 하나로 묶어서 표현하는데
도커가 애플리케이션을 컨테이너로 패키징하여 이식성과 확장성을 갖도록 한다면
쿠버네티스는 이런 컨테이너를 관리하여 효율적으로 운영할 수 있게 해 준다.
즉, 도커라는 것을 더욱 편리하고 효율적으로 사용하게 도와주는 플랫폼이다.
쿠버네티스의 주요 기능
- 컨테이너 스케줄링
- 클러스터 내에서 컨테이너 분배 및 스케줄링하여 자원을 효율적으로 관리
- 노드 간의 부하 분산, 자동 복구 및 확장
- 롤링 업데이트 자동화
- 애플리케이션의 업데이트 및 패치를 자동으로 배포하고 관리
- 서비스의 가용성을 유지하며 사용자에게 업데이트 제공 가능
- 스케일 인/아웃
- 애플리케이션의 수평 스케일링 지원
- 자동으로 애플리케이션 인스턴스 개수 조정 가능
- 부하에 따라 자원을 동적으로 조정
- 서비스 디스커버리 / 로드 밸런싱
- 애플리케이션 인스턴스를 위한 네트워크 서비스 디스커버리와 로드 밸런싱 제공
- 내부와 외부의 트래픽을 적절히 분배하여 안정적인 서비스 제공
- 자가 치유 / 자동 복구
- 애플리케이션 및 노드의 상태를 지속적으로 모니터링함
- 장애 발생 시 자동으로 장애 탐지 및 복구
개념 및 용어
- Node
- 클러스터를 구성하는 개별 서버나 가상 머신을 나타내는 리소스
- 컨테이너를 실행하고 관리할 때 사용
- CPU, 메모리, 스토리지 등의 자원을 가짐
- Pod가 이 노드 상에서 실행
- Pod
- 가장 작은 배포 단위
- 하나 이상의 컨테이너 포함
- 관련 컨테이너를 함께 실행하고 네트워크와 스토리지 리소스 공유
- ReplicaSet
- Pod의 복제본 집합
- Pod의 원하는 개수를 지정
- Pod의 가용성 보장
- 스케일링과 롤링 업데이트 관리
- 지정된 개수의 Pod를 항상 실행되게 한 후에 실패나 삭제된 경우 자동으로 복구
- Deployment
- 애플리케이션 버전 관리 및 롤링 업데이트 지원
- Pod를 관리하고 수를 자동으로 조정
- 애플리케이션의 가용성과 확장성 유지
- Service
- 여러 Pod에 대한 로드 밸런싱, 서비스 디스커버리 및 네트워크 연결 제공
- 애플리케이션에 대한 단일 진입점을 만들어 외부에서 접근 가능하게 함
- Ingress
- 외부에서 내부로 HTTP 및 HTTPS 트래픽 관리
- 로드 밸런싱, 경로 기반 라우팅, SSL 인증서 관리 등 제공
- 애플리케이션에 대한 인바운드 트래픽 제어
- ConfigMap
- 설정 데이터를 저장하여 Pod에서 사용할 수 있도록 제공
- 환경 변수, 설정 파일 등을 저장
- 애플리케이션의 동적인 구성 변경 지원
- Job
- 일회성 작업을 실행하는 리소스
- 특정 작업이 성공적으로 완료될 때까지 Pod를 실행하고 관리
- 배치 작업, 데이터 처리, 크론 작업처럼 한 번 실행되고 종료되는 작업에 적합
- 작업이 실패해도 재시작하여 안정성 제공
- Namespace
- 클러스터 내에서 리소스를 그룹화하고 격리하는 논리적인 공간
- 리소스의 이름 충돌 방지
- 다른 팀이나 애플리케이션 간의 리소스를 분리하여 관리 가능
- 클러스터 관리를 단순화하고 보안 및 리소스 관리를 용이하게 함
'Web' 카테고리의 다른 글
[Kubernetes] 아키텍처 (0) | 2023.07.21 |
---|---|
[Kubernetes] 컨테이너 오케스트레이션 (0) | 2023.07.21 |
[Docker] 빌드 (0) | 2023.07.19 |
[Docker] 이미지 (0) | 2023.07.19 |
[Docker] Docker Hub (0) | 2023.07.19 |