Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Typesript
- springboot
- ELB
- TypeScript
- REPLICATION
- 코드프레소
- 아키텍처
- Elastic Load Balancing
- k8s
- Auto Scaling Group
- ci/cd
- NoSQL
- Redis
- docker
- AWS
- codepresso
- ASG
- kubernetes
- Jenkins
Archives
- Today
- Total
Study Note
쿠버네티스 아키텍처 - [Kubernetes, k8s] 본문
쿠버네티스는 그림과 같은 구조를 가지고 있습니다.
마스터
마스터는 쿠버네티스 클러스터를 구성하는 핵심 컴포넌트들을 가지고 있습니다. 마스터는 단일 서버로 구성할 수 있지만 고가용성을 위해 여러 버서를 묶어서 클러스터 마스터로 구축할 수도 있습니다.
- kube-apiserver(API 서버) : 마스터로 전달되는 모든 요청을 받아 드리는 REST API 서버
- etcd(저장소) : 클러스터의 모든 메타 정보를 저장하는 저장소
- kube-scheduler(컨테이너 스케줄러) : 사용자의 요청에 따라 컨테이너를 워커 노드에 배치하는 스케줄러
- kube-controller-manager(컨트롤러 집합) : 현재 상태와 바라는 상태를 지속적으로 확인하며 특정 이벤트에 따라 특정 동작을 수행하는 컨트롤러
- cloud-controller-namager(클라우드 컨트롤러) : 클라우드 플랫폼(AWS, GCP, Azure)에 특화된 리소스를 제어하는 클라우드 컨트롤러
노드
워커 노드는 다음과 같이 구성되어 있습니다.
- kubelet : 마스터의 명령에 따라 컨테이너의 라이프 사이클을 관리하는 노드 관리자
- kube-proxy : 컨테이너의 네트워킹을 책임지는 프록시
- container runtime : 실제 컨테이너를 실행하는 컨테이너 실행 환경
장점
- 실행 환경 고립화
쿠버네티스의 모든 프로세스는 컨터이너로 실행되기 때문에 사용자는 각 서버의 실행 환경에 대해서 걱정하지 않고 서비스를 운영할 수 있습니다. - 리소스 관리
쿠버네티스 자체적으로 각 서버의 리소스를 체계적으로 관리할 수 있는 기능(리소스 사용량 모니터링, 리소스 사용량 제한 등)을 제공합니다. - 스케줄링
쿠버네티스 내장 스케줄러가 최적의 노드를 찾아 컨테이너를 배치하기 때문에 스케줄링이 편리합니다. 필요에 따라 사용자가 직접 특정 노드로 컨테이너를 할당할 수 있게 상세 스케줄링 정책을 설정할 수 있습니다. - 프로세스 관리
쿠버네티스는 클러스터는 마스터 API 서버에 요청하면 프로세스 조회, 프로세스 기능 제어가 가능하기 때문에 클러스터 레벨에서 프로세스 관리가 편합니다. - 통합 설정 관리
쿠버네티스를 이용해 중앙에서 통합하여 설정값을 관리하여 특정 서버와의 종속성 없이 어느 서버에서나 프로세스를 정상적으로 실행 할 수 있습니다. - 장애 대응
작게는 리소스 관리 기능을 통해 특정 프로세스의 메모리 고갈 이슈를 다른 서버에게로 전의시키지 않을 수 있으며 크게는 문제가 되는 컨테이너를 다른 서버로 교체할 수 있습니다.. - 자동 확장
프로비저닝한 리소스가 부족하여 새로운 리소스가 필요한 경우에도 자동확장 기능을 설정하여 해결할 수 있습니다. - 하이브리드 클라우드 운영
쿠버네티스는 온프레미스 환경이나 클라우드 환경에서 동일한 기술 스택을 이용해 시스템을 운영할 수 있습니다. - 자가 치유
쿠버네티스는 컨테이너가 죽더라도 바라는 상태(Desired State)를 확인해서 컨터이너를 다시 실행할 수 있습니다. - 데이터 스토리지 관리
쿠버네티스는 다양한 데이터 저장소(로컬 스토리지, 클라우드에서 제공하는 저장소, NFS 같은 네트워크 스토리지)를 자동으로 관리할 수 있습니다. - 배포 자동화
바라는 상태(Desired State)를 통해 배포 되거나, 신규 버전 배포, 이전 버전 롤백 등의 작업에서 쿠버네티스는 자동으로 배포합니다.
'Kubernetes > Kubernetes 소개' 카테고리의 다른 글
쿠버네티스 기본 개념 [Kubernetes, k8s] (0) | 2021.07.15 |
---|---|
쿠버네티스란? [Kubernetes, k8s] (0) | 2021.07.15 |