전체보기

· Study/K8s
이번에는 쿠버네티스에서 데이터를 저장하는 Volume을 정리해보도록 한다. Volume 컨테이너가 데이터를 저장하고 공유하는 방식을 제공하는 객체, 기존 컨테이너에서의 Volume과 유사하나 더 유연하게 사용할 수 있다. 이전의 Service를 정리했을때에 알아보았듯이 컨테이너는 일시적인 특성을 가져 일반적으로 컨테이너가 삭제되면 컨테이너에 저장된 내용들이 휘발되는 점이 존재한다. 특히나 데이터베이스와 같은 리소스는 파드나 컨테이너가 삭제되더라도 내부의 데이터를 보존을 해주어야하는데, 여기서 Volume을 사용하게 된다. 쿠버네티스에서 제공하는 Volume의 종류는 아래와 같다. emptyDir hostPath PV/PVC emptyDir 파드 내에서만 지속되는 컨테이너의 임시적인 데이터를 저장하기 위한..
· Study/K8s
Service 파드 집합에서 실행중인 Application을 네트워크 서비스로 노출시키는 방법, 네트워크 추상화를 제공해 동적으로 할당된 파드에 접근할 수 있는 리소스이다. Service의 목적 왜 이런 리소스가 필요할까? 서비스 리소스가 필요한 이유를 일반적인 상황을 통해서 알아볼 수 있다. 웹 Application을 구동시키는 클러스터를 운영하고 있다고 가정해보자. 그리고 이 Application이 Deployment나 StatefulSet을 통해 여러 파드로 분산되어 실행되고 있다고 할 때, 일부 파드가 재생성되는 상황을 생각해보자. 파드가 영구적이지 않은 특성(일회성)을 가짐에 따라, 클러스터의 상황에 따라 언제든지 다른 노드들로 옮겨질 가능성이 존재한다. 이렇게 다른 노드로 옮겨져 생성되면, 매..
· Cloud/IaC
이번엔 Terraform의 꽃으로 불리는, 처음에는 조금 이해하기 어려운 개념인 Module을 알아보도록 한다. Module Terraform 코드들을 관련되어있는 것끼리 그룹으로 모아서 하나의 패키지 형태로 구성한 것 이때, 하나의 그룹으로 묶이는 단위는 '폴더'가 되며, 이 폴더 내의 테라폼 코드들이 모듈이 된다. 개발을 해본 사람이면 쉽게 라이브러리 개념으로 바라볼 수 있다. 정의해둔 라이브러리를 다른 프로젝트나 코드에서 import해서 사용하는 것같은 느낌이다. Module의 장점 재사용성 Module은 코드의 재사용성을 높일 수 있다. 한번 작성해놓은 인프라 리소스 모듈을 다른 인프라나 프로젝트에서 호출함을 통해 개발비용을 줄이고 일관된 구조를 유지할 수 있다. 구조화와 가독성 본래 Terraf..
· Study/K8s
쿠버네티스의 리소스 오브젝트를 생성하는 방법에는 kubectl CLI 커맨드로 생성하는 방법과 Manifest 파일을 적용해 생성하는 방법 2가지가 존재한다. 이번에는 Manifest 파일과 이를 통해 리소스 오브젝트를 생성하는 방법을 알아보도록 한다. Manifest 파일 Manifest 파일은 YAML / JSON 포맷으로 작성되는 쿠버네티스 리소스 오브젝트의 구성을 정의하는 파일이다. 생성하고자하는 쿠버네티스 오브젝트를 파일에 정의한 후, kubectl apply를 통해 클러스터에 Manifest 파일을 적용한다. kubectl apply -f ./deployment.yml apply 명령어로 마스터 노드에 있는 쿠버네티스 API 서버에 Manifest 파일 내용을 전달하고, 파일의 유효성을 검사한..
· Cloud/Azure
Azure도 공부할 겸 계정을 하나 파기로 했다. 학교이메일이 살아있는 기간 동안에 최대한 먹을거 다 털어먹어보자는 마인드로 찾아본 결과, Azure for Students라는 서비스를 발견했다. Azure for Students MS에서는 대학교 이메일만 있으면 학생용 Azure 계정을 생성해 사용할 수 있도록 한다. $100 양의 크레딧을 주고, 가입할때에 카드정보를 등록할 필요가 없다고 한다. 보통 다른 퍼블릭 클라우드 서비스들 가입할때에는 카드정보를 입력받지만, Azure for Students는 가입 당시 등록하지 않고 크레딧을 다쓰거나 기간이 끝나면 그때 카드정보를 등록해 종량제로 전환하는 방식이라고 한다. 카드정보를 미리 등록하지 않으니 크레딧 기간동안은 혹시나 발생하는 과금폭탄을 맞을 일은..
· Study/K8s
앞서 쿠버네티스의 전체적인 아키텍처와 클러스터, 노드, 파드를 알아보았다. 이번에는 쿠버네티스의 워크로드 리소스들을 정리해보고자한다. 먼저 쿠버네티스에서 워크로드는 클러스터에서 실행되는 Application을 의미하며, 이러한 하나의 워크로드는 파드 집합으로 구성된다. 주요 워크로드 리소스에는 ReplicaSet(레플리카셋), Deployment(디플로이먼트), StatefulSet(스테이트풀셋), DaemonSet(데몬셋)이 존재한다. ReplicaSet 레플리카셋은 파드의 수를 일정하게 유지시키는 데에 목적을 둔 워크로드 리소스이다. 그렇기 때문에 파드에 대한 가용성(Avability)을 보장한다고 볼 수 있다. 다음은 레플리카셋을 정의하는 매니페스트 파일이다. apiVersion: apps/v1 k..
· Study/K8s
그동안 참 많이도 들었던 쿠버네티스, 이제서야 공부를 시작하게 되었다. 쿠버네티스는 단어나 개념 정리할 것들이 많은 편이다. 가장 큰 개념부터 하나하나씩 알아가보도록 한다. 쿠버네티스란? 쿠버네티스는 컨테이너 오케스트레이션 도구로 여러대의 서버에 컨테이너화된 Application을 배포 / 관리 / 확장할 수 있는 기능을 제공한다. 쿠버네티스는 구글이 개발한 borg라는 도구에서 발전된 형태로, 2015년 출시 이후 CNCF 재단에 오픈소스로써 제공했다고 한다. 쿠버네티스와 도커? 컨테이너를 관리하는 도구라는 점에서 쿠버네티스와 도커는 유사하다고 볼 수 있다. 다만 서로 주요 목적과 역할이 다를 뿐이라는 점을 확인해야한다. 도커는 단일 호스트 환경에서 컨테이너를 빠르고 간편하게 실행하는데에 주된 목적이 ..
· ToyProject
이전글에서 Lambda를 트리거할 수 있도록 SNS와 SQS로 연결해주었다. 이제 Rekognition API를 통해 추출된 비디오에서 특정 인물이 탐색된 구간 timestamp를 바탕으로 해당 구간끼리만 연결해주는 작업만 남았다. Elastic Transcoder S3 버킷에 저장된 미디어 파일을 변환(Transcoder)해주는 서비스이다. 클라우드 미디어 편집 서비스 정도로 이해하면 편하다. Transcoder는 글을 작성하는 현재 서울 리전을 지원하지 않는 관계로 us-east-1에서 작업을 진행했다. Elastic Transcoder에서는 크게 4가지 개념요소가 존재한다. 작업 : Transcoding을 수행하는 것으로, 비동기 처리에서의 job정도로 볼 수 있다. 파이프라인 : Transcodi..
Omoknooni
'분류 전체보기' 카테고리의 글 목록 (10 Page)