고객의 요구가 증가하면 소프트웨어 기능도 마찬가지로 커지면서 동시에 내결함성과 최대 사용량을 감당할 수 있는 확장성도 가져야 한다. 마이크로서비스는 오늘날의 소프트웨어 개발 과정에서 중요한 역할을 담당하고 있는 설계 유형이다. MicroService ? MicroService의 정의는 다음과 같이 할 수 있다. 마이크로서비스는 개별적으로 배포 일정을 갖고 업데이트 운영이 가능한 작고 독립적인 소프트웨어 프로세스다. MicroService App이란 ? MicroService 앱은 기존에 알고 있던 분산 애플리케이션이며, 격리된 프로세스와 네트워크 통신을 하는 작은 구성 요소로 이루어진 시스템을 말한다. 각각의 서비스나 구성 요소는 논리적으로 또는 가상으로 구분된 컴퓨터에 위치하지만 가끔은 물리적인 컴퓨터..
쿠버네티스 클러스터의 컴포넌트 마스터 컴포넌트 etcd 쿠버네티스 클러스터 구성을 유지하는 분산 KVS. 데이터를 Key-Value형으로 관리한다. 어떤 파드를 어떻게 배치할지와 같은 정보를 갖고 있어서 API Server가 이를 참조한다. 매니페스트의 내용이 저장되어 있다고 생각하면 좋을 것이다. 분산 시스템에서 노드 사이의 상태를 공유하는 합의 알고리즘 중 하나인 raft 알고리즘을 구현한 것. 쿠버네티스에서는 필요한 모든 데이터를 저장하는 데이터베이스 역할을 한다. 마스터 서버에서 분리시킬 수도 있다. kube-apiserver 쿠버네티스 클러스터의 API를 사용할 수 있도록 하는 컴포넌트 쿠버네티스의 리소스 정보를 관리하기 위한 프런트엔드 REST API. 각 컴포넌트로부터 리소스 정보를 받아 데..
✔️ Service Object의 개념 쿠버네티스에서의 Service는 Pod들의 집합이며 동일한 서비스 동작을 구현하는 여러가지 Pod를 묶어 하나로 관리하는 오브젝트이다. [Kubernetes] Object 개념 ✔️ Kubernetes 구성 쿠버네티스는 크게 오브젝트(Object)와 오브젝트를 관리하는 컨트롤러(Controller)로 나눠져 있다. 쿠버네티스 오브젝트는 쿠버네티스 시스템에서 영속성을 가진다. 오브젝트를 nice-engineer.tistory.com ✔️ Service Object의 등장 배경 1. 서비스를 위한 고정 IP의 필요성 서버는 문제가 생기면 서버를 재시작하고 서비스를 재시작하지만 Pod는 문제가 생기면 그 Pod를 삭제한 뒤 새로운 Pod를 생성한다. 따라서 Pod의 IP..
✔️ Workload란 ?! 워크로드란 쿠버네티스에서 구동되는 어플리케이션이다. 워크로드가 단일 구성 요소든 함게 작동하는 여러 구성 요소이든 상관없이 쿠버네티스에서는 Pod 세트 내에서 실행한다. 쿠버네티스 Pod에는 LifeCycle이 정의되어 있다. 예를 들어 클러스터에서 Pod가 실행 중에 그 Pod가 실행 중인 노드에 심각한 장애가 발생하면 해당 노드의 모든 Pod에 장애가 발생한다는 것을 의미한다. 노드가 나중에 정상 상태가 되더라도 복구하려면 새 Pod를 생성해야 한다. 그러나 Pod의 LifeCycle을 관리하기 위해 우리는 각 Pod를 직접 관리할 필요가 없다. 우리대신 Pod set을 관리하는 Workload Resources를 사용할 수 있다. ✔️ Workload Resources란..
AWS EKS 실습을 진행하면서 만났던 생소한 개념들을 정리하는 글. 하단 링크 글이 많은 도움이 되었다. [Kubernetes] 쿠버네티스 Pod 안녕하세요. 개발자 김모씨입니다. 쿠버네티스 시리즈를 이어가고 있죠. 혹시 이전 포스팅 '쿠버네티스 구조'를 아직 안 보신 분은 얼렁 다녀오세요~ artist-developer.tistory.com/31 안 artist-developer.tistory.com ✔️ Pod란 ? Pod란 쿠버네티스의 가장 기본적인 배포 단위이다. 마스터 노드에서는 워커 노드로 Pod를 전달하고 워커 노드에서는 Pod를 수행하는 구조이다. 한 개의 워커 노드에는 N개의 Pod들이 돌아가게 된다. 쿠버네티스는 컨테이너(Docker 등)를 개별적으로 배포하는 것이 아닌 Pod 안에 ..
✔️ AWS EKS(Elastic Kubernetes Service)란 ? AWS EKS란 자체 쿠버네티스 컨트롤 플레인이나 작업자 노드를 설치 및 운영할 필요 없이 AWS에서 쿠버네티스를 손쉽게 실행할 수 있도록 지원하는 관리형 서비스이다. AWS EKS는 컨테이너 시작 및 중지, 가상 시스템에서 컨테이너 일정 수립, 클러스터 데이터 저장 및 기타 작업을 담당 하는 쿠바네티스 제어 플레인 노드의 가용성과 확장성을 자동으로 관리 해준다. EKS를 사용하면 Kuberenetes 설치부터 운영까지 EKS가 해주기 때문에 직접 Kubernetes Cluster를 구성하고 관리하는 것보다 쉽게 Kubernetes를 사용할 수 있다. EKS는 오픈 소스 Kubernetes의 최신 버전의 실행하므로 kubernet..