2020/04(34)
-
카프카 - 01 - 카프카의 디자인
카프카 디자인의 특징 분산 시스템 아파치 카프카 문서에 따르면 링크드인에서 가장 사용량이 노퓨은 클러스터는 60대의 브로커를 운영하고 있다. 페이지 캐시 카프카는 처리량을 높이기 위해 페이지 캐시를 이용한다. 그래서 카프카를 구성할 때는 디스크 중에서 가격이 저렴한 SATA 를 사용해도 무방하다. 카프카는 자바 기반의 JVM 을 사용하는 어플리케이션이다. 카프카는 JVM 에서 1GB 의 힙메모리 영역을 사용하게 되어있다. 컨플루언트 사의 문서에 따르면 카프카는 초당 메시지 단위, 메가비트 단위를 처리하기 위해 5GB 의 힙메모리면 충분하다고 한다. 그리고 남아있는 메모리는 페이지 캐시로 사용하라고한다. 배치 I/O 처리 카프카는 데이터 I/O를 배치로 묶어서 처리한다. 토픽 메시지를 받을 수 있도록 논리..
2020.04.10 -
카프카 - 00 - 개요
아래 책을 읽고 정리합니다. : http://www.yes24.com/Product/Goods/59789254 카프카, 데이터 플랫폼의 최강자 데이터 플랫폼의 핵심 컴포넌트로 각광받고 있는, 이벤트 기반 비동기 아키텍처를 위한 고가용성 실시간 분산 스트리밍 솔루션 카프카(Kafka)의 모든 것!국내 최대 모바일 플랫폼 회사인 카카오에서 `전사 공용 카프카` 서비스를 운영하고, 데이터 파이프라인과 빅데이터 플랫폼을 구축한 저자들의 풍부한 지식, 생생한 실전 경험, 노하우가 가득 담긴 책... www.yes24.com 엔드투엔드 아키텍쳐 문제점 엔드투엔드 연결은 빠른 전송 속도와 전송 결과를 신속하게 알수 있는 장점이 있는 반면 문제점이 많다. 트랜잭션 처리와 비동기 처리가 동시에 이뤄지지만 통합된 전송영역..
2020.04.10 -
쿠버네티스 입문 - 14 - 헬름
헬름 차트는 템플릿 파일들의 집합이다. 헬름은 차트를 관리하는 쿠버네티스 패키지 매니저 도구다. 헬름은 차트와 차트 압축 파일을 만들 수 있다. 헬름은 차트 저장소와 연결해 쿠버네티스 클러스터에 차트를 설치 / 삭제 할 수 있다. 헬름은 차트들의 배포주기를 관리할 수 있다. 용어 정리 차트 : 쿠버네티스에서 실행할 어플리케이션을 만드는데 필요한 정보 묶음 컨피그 : 패키지한 차트에 넣어서 배포 가능한 오브젝트를 만들 때 사용할 수 있는 설정 릴리즈 : 특정 컨피그를 이용해 실행중인 차트의 인스턴스 헬름 클라이언트 : 헬름의 커맨드라인 인터페이스 틸러 서버 : 쿠버네티스 클러스터 안에서 헬름 클라이언트의 명령을 받아 쿠버네티스 API 와 통신하는 서버 차트 뮤지엄 : 차트를 사내에서만 운영해야할 경우 차트..
2020.04.09 -
쿠버네티스 입문 - 13 - 사용자 정의 자원
사용자 정의 자원 사용자 정의 자원 : 쿠버네티스에서 제공하는 내장 자원(Pod, Service) 이외에 사용자가 필요한 자원을 정의 할 수 있다. 사용자 정의 컨트롤러 : 사용자 정의 자원 자체는 구조화된 데이터이고 이를 이용해서 원하는 동작을 하려면 사용자 정의 컨트롤러 API 가 필요하다. 선언적 API 예시 파드를 2개 더 생성하라. (x) 파드가 2개 실행되어야 한다. (o) 트랜잭션을 엄수해야하는 정확한 상태를 명령하는 식이면 안된다. 오브젝트들이 어떤 상태인지를 바라는 지만 나타내야한다. 사용자 정의 자원을 정의 하는 방법 CRD 템플릿을 만든다. CRD를 관리하는 추가 서비스는 없어도된다. 사용자 정의 자원은 kube-apiserver 가 관리한다. Aggregated API Go 언어로 ..
2020.04.09 -
쿠버네티스 입문 - 12 - 오토스케일링 (HPA)
HPA (Horizontal Pod Autoscaler'0 파드를 오토스케일링 해주는 컨트롤러 매니저 오토스케일링 계산식은 다음과 같다. ex. 타겟 CPU 사용률 : 60 파드 A CPU 사용률 : 80 파드 B CPU 사용률 : 50 Math.ceil(80 + 50 / 60) = 3 따라서 파드는 3개로 유지된다. 오토스케일링 샘플 apiVersion: autoscaling/v1 kind: HorizontalPodAutoscaler metadata: name: kubernetes-simple-app-hpa namespace: default spec: maxReplicas: 10 minReplicas: 1 scaleTargetRef: apiVersion: extensions/v1beta1 kind: D..
2020.04.08 -
쿠버네티스 입문 - 11 - 로깅과 모니터링
컨테이너의 로그 수집 컨테이너 로그 수집은 보통 컨테이너 런타임인 도커가 담당한다. 앱컨테이너가 stdout, stderr 스트림을 이용해 로그를 출력하면 로그 드라이버로 리다이렉트하여 출력하게 설정되어있다. 파드의 로그 확인하기 kubectl logs -f 파드이름 명령어를 이용하면 파드가 떠있는 노드에 접근하지 않아도 파드의 로그를 확인할 수 있다. -f 옵션은 로그를 지속해서 수집하는 테일링 옵션이다. 실시간으로 여러개 파드의 로그를 지켜보고 싶을 때는 실시간 로그모니터링 도구인 스턴을 사용할 수 있다. 전통적인 어플리케이션 운영 환경에서의 로깅 로컬 파일 시스템의 지정된 위치에 로그를 저장한다. 로그로테이트를 이용해 로그를 일정 기간만 보관한다. 이런 방식은 항상 지정된 장비에서만 실행된다는 것이..
2020.04.08