아키텍처
-
Docker 소개아키텍처/MSA 2023. 3. 15. 14:04
Docker란? 오픈소스 컨테이너 프로젝트로, 서비스 운영 환경을 묶어서 손쉽게 배포하고 실행하는 컨테이너 기술을 지원한다. (컨테이너에 관해서는 지난 아티클 참조 http://sarc.io/index.php/cloud-computing/412-vm-vs-container) 초기에는 LXC(Linux Container)를 기반으로 구현되었고, 버전 0.9부터는 LXC를 대신하는 libcontainer를 개발하여 사용했다. 이미지 생성과 배포에 특화된 도커는 이미지 버전관리를 GitHub과 비슷한 방식으로 push/pull 의 형태로 제공한다. 이미지는 Docker Hub 이라는 저장소에 저장되며, 저장된 이미지는 도커 사용자 간 공유 및 재사용이 가능하다. 현재 AWS, Google Cloud Platf..
-
kubernetes service아키텍처/MSA 2023. 2. 21. 17:53
서비스는 리마인드만하고 ingress만 해오기 Service 개념 ❗ 서비스 = 쿠버네티스 네트워크 동일한 서비스를 제공하는 Pod 그룹의 단일 진입점을 제공 Process 1️⃣실행 명령을 Deployment에게 시킴 2️⃣ API는 이 요청을 받아 deployment 문법을 확인 3️⃣ etcd에 있는 node1~3에 대한 정보들을 수립하고 etcd에 보존 4️⃣ controller와 scheduler의 도움을 받아 서비스 3개를 실행 하나의 파드에 일이 몰리면 안되니까 균등하게 작업을 분산 시켜주는 게 필요 어떻게? 서비스를 요청해서! api서비스 구조로 k8s에 명령을 내림 단일 진입점을 만들어서 분산할 수 있게! virtual ip를 만들어서 3개의 pod의 ip에 LB → 이 정보를 ectd에..
-
-
kubernetes - pod, deployment아키텍처/MSA 2023. 2. 21. 17:38
쿠버네티스란 무엇인가? 쿠버네티스는 컨테이너화된 워크로드를 관리하기 위한 오픈소스 플랫폼이다. 쿠버네티스는 Container 화된 애플리케이션을 자동화된 배포 , 선언적 구성을 용이하게 한다. 또한 애플리케이션의 확장과 장애 조치를 처리하고, 배포 패턴 등을 제공한다. ❓ 쿠버네티스는 어떻게 동작해서 컨테이너화된 애플리케이션을 관리할까? 쿠버네티스의 구성 클러스터 컨테이너화된 애플리케이션을 실행하는 노드라고 하는 워커머신의 집합. 모든 클러스터는 최소 한 개의 워커 노드를 가진다. Node : 애플리케이션의 구성 요소인 Pod 를 호스트한다. 클러스터 내부에는 다양한 Component 가 상호작용한다. Control Plane → 마스터 컨테이너의 라이프 사이클을 정의, 배포, 관리하기 위한 API와 인..
-
-
쿠버네티스 #7서비스 (service)아키텍처/MSA 2023. 2. 21. 16:38
Service 쿠버네티스 서비스에 대해서 자세하게 살펴보도록 한다. Pod의 경우에 지정되는 Ip가 랜덤하게 지정이 되고 리스타트 때마다 변하기 때문에 고정된 엔드포인트로 호출이 어렵다, 또한 여러 Pod에 같은 애플리케이션을 운용할 경우 이 Pod 간의 로드밸런싱을 지원해줘야 하는데, 서비스가 이러한 역할을 한다. 서비스는 지정된 IP로 생성이 가능하고, 여러 Pod를 묶어서 로드 밸런싱이 가능하며, 고유한 DNS 이름을 가질 수 있다. 서비스는 다음과 같이 구성이 가능하며, 라벨 셀렉터 (label selector)를 이용하여, 관리하고자 하는 Pod 들을 정의할 수 있다. apiVersion: v1 kind: Service metadata: name: hello-node-svc spec: selec..
-
쿠버네티스 #6 Replication Controller를 이용하여 서비스 배포하기아키텍처/MSA 2023. 2. 21. 16:20
1. 도커 파일 만들기 node.js로 간단한 웹서버를 만들어서 도커로 패키징 해보자. 실습을 진행하기 위해서 로컬 환경에 도커와, node.js 가 설치되어 있어야 한다. 이 두 부분은 생략하도록 한다. 여기서 사용한 실습 환경은 node.js carbon 버전 (8.11.3), 도커 맥용 18.05.0-ce, build f150324 을 사용하였다. node.js 애플리케이션 준비하기 node.js로 간단한 웹 애플리케이션을 제작해보자 server.js라는 이름으로 아래 코드를 작성한다. var os = require('os'); var http = require('http'); var handleRequest = function(request, response) { response.writeHead..
-
쿠버네티스 #4 아키텍쳐아키텍처/MSA 2023. 2. 21. 16:17
쿠버네티스에 대한 개념 이해가 끝났으면, 이제 쿠버네티스가 실제로 어떤 구조로 구현이 되어 있는지 아키텍쳐를 살펴보도록 하자. 아키텍쳐를 이용하면 동작 원리를 이해할 수 있기 때문에, 쿠버네티스의 사용법을 이해하는데 도움이 된다. 출처 https://kubernetes.io/docs/concepts/architecture/ 마스터와 노드 쿠버네티스는 크게 마스터(Master)와 노드(Node) 두 개의 컴포넌트로 분리된다. 마스터는 쿠버네티스의 설정 환경을 저장하고 전체 클러스터를 관리하는 역할을 맏고있고, 노드는 파드나 컨테이너 처럼 쿠버네티스 위에서 동작하는 워크로드를 호스팅하는 역할을 한다. 마스터 쿠버네티스 클러스터 전체를 컨트럴 하는 시스템으로, 크게 다음과 API 서버, 스케쥴러, 컨트롤러 매..