728x90
클라우드 네이티브와 도커까지 알았다면 드디어 쿠버네티스에 대해 알아갈 차례이다.
이번 글에서는 쿠버네티스의 등장 배경과 개념, 구성요소와 각각의 특징을 알아볼 것이다.
쿠버네티스는 왜 등장했는가?
앞선 글에서 도커의 개념에 대해 알아보았다. 도커가 등장하면서 컨테이너 기반의 배포 방식이 보편화되고, 많은 서비스들이 이를 사용하기 시작했다. 점점 Image가 많아지면서 관리해야 할 컨테이너와 서버들이 많아지게 되었다.
즉, 엔지니어가 신경써야 할 것들이 너무 많아져서 힘들었다... 엔지니어는 여기서 가만 있을 수는 없었다.
고민 끝에 떠올린 생각, "반복적인 일들을 자동화하자!"
컨테이너들을 자동으로 관리할 도구(컨테이너 오케스트레이션 툴)를 필요로 하게 되었고, 이때 Kubernetes가 등장하게 되었다.
쿠버네티스란 무엇인가
쿠버네티스는 컨테이너를 쉽고 빠르게 배포, 확장하고 관리하는 것을 자동화하는 오픈소스 플랫폼이다.
그렇다면, 쿠버네티스의 기능은 무엇일까? 쿠버네티스를 사용하면 여러 컨테이너에 걸쳐 애플리케이션 서비스를 구축하고 클러스터 전체에서 컨테이너의 일정을 계획하고, 확장해 관리할 수 있다.
쿠버네티스 구성 요소
클러스터
컨트롤 플레인이나 하나 이상의 컴퓨터 머신, 노드로 구성된 클러스터는 하나의 이상의 컨트롤 플레인 컴포넌트와 이와 연결된 몇 개의 워커 노드로 구성된다.
- 컨트롤 플레인(제어판)
모든 일들이 할당되고 관리되는 곳으로, 쿠버네티스의 노드를 제어하는 프로세스가 모여 있는 곳이다.
구성 요소 | 설명 |
etcd | 쿠버네티스 클러스터의 모든 데이터를 담고 있는 저장소로, 정상 상태에 대한 SnapShot과 메타데이터를 저장한다. |
kube-api-server | 모든 쿠버네티스 컴포넌트 및 사용자의 기본 상호작용을 하는 서버이다. |
kube-scheduler | 새로운 Pod를 감지해 어떤 워커노드에 실행시킬지 선택한다. |
kube-controller-manager | API 서버를 통해 클러스터의 다양한 컴포넌트 상태를 감지하고 원하는 상태로 만든다. |
- 워커노드
구성 요소 | 설명 |
kubelet | API 서버와 통신해 노드 상태를 알리고 스케줄링해야 할 워크노드를 처리하는 에이전트이다. 마스터 노드와 통신을 담당하며 컨테이너가 정상적으로 실행되는지 확인한다. |
kube-proxy | 모든 워커 노드마다 실행되는 네트워크 프록시로, 다른 Pod 간의 네트워크 통신과 클러스터 바깥의 Pod로의 네트워크 통신을 돕는다. |
728x90
'클라우드' 카테고리의 다른 글
도커란 무엇인가 (0) | 2024.02.22 |
---|---|
[Kubernetes] 클라우드 네이티브란 무엇인가 (0) | 2024.02.22 |
Docker로 Apache 웹 서버 구축하기 (1) | 2024.01.02 |
docker 기본 명령어 모음 (0) | 2024.01.02 |