https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/
정의
- 컨테이너화된 워크로드와 서비스를 관리하기 위한
- 이식성 있는 / 확장 가능한 오픈소스 플랫폼
- 이름 유래
- 키잡이(helmsman), 파일럿을 뜻하는 그리스어에서 유래
- K8s의 8은 K와 s 사이에 있는 "ubernete" 8글자를 의미
쿠버네티스가 필요한 이유
- 프로덕션 환경에서는 애플리케이션을 실행하는 컨테이너가 필요
- ex) 컨테이너가 다운되면 다른 컨테이너를 다시 시작해야함 - 이를 시스템에 의해 처리하면 더 쉬울 것
- 쿠버네티스가 필요한 이유
- 분산 시스템을 탄력적으로 실행하기위한 프레임워크 제공
- 애플리케이션의 확장/장애조치 처리
- 배포 패턴 제공(시스템의 카나리아 배포를 쉽게 관리)
쿠버네티스가 제공하는 것
- 서비스 디스커버리 / 로드밸런싱
- DNS 이름 / 자체 IP 주소로 컨테이너를 노출할 수 있음
- 컨테이너에 트래픽이 많으면 로드밸런싱+배포
- 스토리지 오케스트레이션
- 로컬 저장소 / 공용 클라우드 공급자 등 원하는 저장소 시스템을 자동으로 탑재
- 자동화된 롤아웃/롤백
- 배포된 컨테이너의 원하는 상태를 서술 가능
- 현재 상태를 원하는 상태로 설정한 속도에 따라 변경
- ex) 쿠버네티스를 자동화하여 (배포용 새 컨테이너 생성 -> 기존 컨테이너 제거 -> 리소스를 새 컨테이너에 적용) 이 가능
- 자동화된 빈 패킹(bin packing)
- 쿠버네티스 클러스터 노드 제공
- 컨테이너화된 작업을 실행하는데 사용 - 각 컨테이너가 필요한 CPU/메모리를 쿠버네티스에게 알리면
- 컨테이너를 노드에 맞추어(?) 최적화된 리소스 사용하도록 함
- 쿠버네티스 클러스터 노드 제공
- 자동화된 복구(self-healing)
- 실패한 컨테이너를 다시 시작
- 컨테이너 교체
- '사용자 정의 상태 검사'에 응답하지 않는 컨테이너를 죽임
- 시크릿과 구성 관리
- 암호 / OAuth 토큰 / SSH 키 등 중요한 정보 저장/관리
쿠버네티스 컴포넌트
- 쿠버네티스 Cluster
- 쿠버네티스를 배포하면 Cluster를 얻음
- 쿠버네티스 Cluster는 Worker Machine의 집합
- Worker Machine : 컨테이너화된 애플리케이션을 실행하는 노드(Worker Node) - 모든 Cluster는 최소 1개의 Worker Node를 가짐
- Worker Node
- 애플리케이션의 구성요소인 Pod를 호스트
- Pod : Cluster에서 실행 중인 컨테이너의 집합
- 애플리케이션의 구성요소인 Pod를 호스트
- Control Plane
- 컨테이너의 라이프사이클을 정의/배포/관리하기 위한 API와 인터피에스들을 노출하는 컨테이너 오케스트레이션 레이어
- Worker Node와 Cluster내의 Pod 관리
- 일반적으로 Control Plane이 여러 컴퓨터에 걸쳐 실행
- Cluster는 일반적으로 여러 Node를 실행하므로 내결함성/고가용성 제공
'데이터 엔지니어링 > K8s' 카테고리의 다른 글
[K8s] Helm (0) | 2022.05.16 |
---|---|
[K8s] Cluster 초기세팅 에러 (coredns PENDING) (0) | 2022.05.13 |
[K8s] 쿠버네티스 애드온 (0) | 2022.05.13 |
[K8s] 쿠버네티스 노드(Node) 컴포넌트 (0) | 2022.05.13 |
[K8s] 쿠버네티스 컨트롤 플레인(Control Plane) 컴포넌트 (0) | 2022.05.13 |