728x90
<쿠버네티스 아키텍처 - 오브젝트 이론>
<Master>
- Master 상세 설명 - etcd
- 모든 상태와 데이터를 저장하고 분산 시스템으로 구성하여 안전성을 높임 (고가용성)
- 가볍고 빠르면서 정확하게 설계 (일관성)
- Key - Valve 형태로 데이터 저장되며 TTL, watch같은 부가 기능 제공 백업
- Master 상세 설명 - API Server
- 상태를 바꾸거나 저장하고 etcd와 유일하게 통신하는 모듈
- REST API 형태로 제공되며 권한을 체크하여 적절한 권한이 없을 경우, 요청 차단
- 관리자 요청 뿐만 아니라 다양한 내부 모듈과 통신이 수평으로 확장되도록 디자인
- Master 상세 설명 - Scheduler
- 새로 생성된 Pod를 감지하고 실행할 노드 선택하는 역할을 수행하며 노드의 현재 상태와 Pod의 요구 사항 체크
- Master 상세 설명 - Controller
- 논리적으로 다양한 컨트롤러 존재 (ex. 복제 컨트롤러, 노드 컨트롤러, 엔드포인트 컨트롤러)
- 끊임 없이 상태를 체크하고 원하는 상태를 유지하며, 복잡성을 낮추기 위해 하나의 프로세스로 실행
<Node>
- Node 상세 설명- kubelet
- 각 노드에서 실행되며 Pod를 실행 및 중지하고 상태를 체크하는 역할
- Node 상세 설명 - proxy
- 네트워크 프록시와 부하 분산 역할을 실행하며 성능 상의 이유로 별도의 프록시 프로그램 대신 iptable 또는 IPVS를 사용 (설정만 관리)
<Pod>
- 가장 작은 배포 단위로, 전체 클러스터에서 고유한 IP를 할당
- 여러 개의 컨테이너가 하나의 Pod에 속할 수 있음
<ReplicaSet>
- 여러 개의 Pod를 관리하고, 새로운 Pod는 Template를 참고해 생성
- 신규 Pod를 생성하거나 기존 Pod를 제거해 원하는 수를 유지
<Deployment>
- 배포 버전을 관리하고 내부적으로 ReplicaSet을 이용
<Service>
- Service 상세 설명 - Cluster IP
- 클러스터 내부에서 사용하는 프록시
- Pod는 동적이지만 서비스는 IP를 가지고, 클러스터 내부에서 서비스 연결은 DNS를 이용
- Service 상세 설명 - NodePort
- 노드에 노출되어 외부에서 접근 가능한 서비스로 모든 노드에 동일한 포트로 생성
<Ingress>
- 도메인 또는 경로별 라우팅 (Nginx, HAProxy, ALB 등)
- 클러스터 외부에서 내부로의 HTTP 및 HTTPS 트래픽을 관리하고 경로 기반 라우팅을 제공 (클러스터 내부에 있는 서비스에 외부 요청을 라우팅하는 역할)
<쿠버네티스 일반적인 아키텍처>
'클라우드 + DevOps > Kubernetes (k8s)' 카테고리의 다른 글
Kubernetes 실습 :: Helm 서비스 이용 (0) | 2024.04.16 |
---|---|
Kubernetes :: Application Pod 배포 실습 (0) | 2024.04.15 |
Kubernetes 실습 :: Kubernetes 대시보드 모니터링 실습 (2) 프로메테우스 모니터링 서비스 설치 (0) | 2024.04.14 |
Kubernetes 실습 :: Kubernetes 대시보드 모니터링 실습 (1) (0) | 2024.04.13 |
Kubernetes 실습 :: Virtual Machine에서 Kubernetes 설치 (6) 대시보드 인증서 생성 (1) | 2024.04.12 |