프로젝트&&스터디31 3주차 - Kafka & Strimzi 오퍼레이터 1. 카프카 소개 비동기 방식의 스트리밍 플랫폼이다. 분산 데이터 스트리밍 플랫폼 1.1 특징 - 높은 처리량 : 묶음 단위 배치 처리로 대용량 실시간 로그 데이터 처리에 적합 - 높은 확장성 : 브로커을 통해 scale in/out이 편리 - 높은 영속성 : 데이터를 캐싱 메모리를 통해 일시적으로 저장하고 빠르게 불러올 수 있음 - 높은 가용성 : 데이터 복제를 통해 장애 상황에 대비 1.2 기본 용어정리 - Producer : 데이터 제공자. 데이터(메시지, 이벤트)를 생성하여 카프카로 전달함. - Consumer : 데이터 소비자. 카프카로 부터 데이터를 받아 필요한 상태로 가공하여 사용함. - Brokers : Kafka 클러스터를 이루는 구성 단위이며, 쿠버네티스의 워커노드와 비슷한 느낌이다. .. 2022. 6. 25. 2주차 - 오퍼레이터 & MySQL 오퍼레이터 (설치 및 장애테스트) 1. Helm을 통해서 mysql 오퍼레이터를 설치 helm repo add mysql-operator https://mysql.github.io/mysql-operator/ helm repo update helm install mysql-operator mysql-operator/mysql-operator --namespace mysql-operator --create-namespace 2. MySQL 오퍼레이터 CRD 확인 kubectl get crd | grep mysql kubectl get deploy,pod -n mysql-operator 3. MySQL InnoDB 클러스터 설치 helm install mycluster mysql-operator/mysql-innodbcluster \ --s.. 2022. 6. 25. 2주차 - 오퍼레이터 & MySQL 오퍼레이터 1. 쿠버네티스 오퍼레이터 - 오퍼레이터는 쿠버네티스 추상화를 통해 관리 대상 소프트웨어의 전체 라이프사이클을 자동화, 애플리케이션을 패키징-배포-관리하는 툴입니다. (공식문서) - CRD(Custom REsource Definition) : 오퍼레이터로 사용할 상태 관리용 객체 Spec 정의 - CR(Custom Resource) : CRD의 spec을 지키는 객체들의 실제 상태 데이터 조합 - CC(Custom Controller) : CR에 규정된 상태를 유지하기 위한 컨트롤 루프 2. DB 기본지식 2.1. DB에서의 Transaction이란? - (일반적 정의) 쪼갤 수 없는 업무 처리의 최소 단위 - (DB적 정의) 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위 - (또 다른 정의.. 2022. 6. 24. 1주차 - Deploying PHP Guestbook application with Redis (도전과제) 1. 실습가이드 (링크) Redis를 이용한 PHP 방명록 애플리케이션을 구성합니다. 해당 실습을 통해서 deploy 형태의 pod 배포, Redis의 Leader-Follower 구성, service를 통한 배포, frontend web과 연결, 파드 스케일 증가를 확인할 수 있다. 2. Redis는 무엇인가? In Memory Cache 시스템으로 메모리 속에 자료를 저장하여 처리 속도가 매우 빠른 장점이 있다. Key-Value 저장소로, 다양한 형식의 데이터를 지원하며 NoSQL 형태이다. (참고블로그) Redis는 메모리 상의 DB라는 점에서 영속성을 문제를 가질 수 밖에 없는데, 이를 보완하기 위해서 데이터를 Disk에 저장할 수 있도록 하여 영속성을 보장하도록 했다. 데이터를 DISK에 저장.. 2022. 6. 24. 1주차 - 쿠버네티스 주요 리소스(statefulset, headless 서비스) 1. stateless vs stateful - stateless는 쉽게 말해서 상태가 보존되지 않는 다고 생각하면 됩니다. 삭제되고 다시 살아나면서 hostname등의 기본적인 정보가 변경됩니다. - stateful의 경우 이와 반대로 동일한 형태가 유지되는 것이라고 할 수 있습니다. - 특히나 nginx와 같이 웹서버 등은 만약 하나의 pod가 죽어도, 생성되는 pod가 같은 nginx pod 이기만 하면됩니다. 그러나 DB와 같이 내부의 내용까지 보존되어야 하는경우 hostname이나 volume 연결정보 등 부터 모두 기존의 내용과 동일해야하므로 반드시 같은 내용의 pod가 등장해야 합니다. 2. stateful 및 headless 소개 - 이처럼 stateful 상태에서는 변동되는 IP와 같이 .. 2022. 6. 24. 1주차 - 쿠버네티스 주요 리소스(쿠버네티스 네트워크) 1. Service 개요 - 기본적으로 pod를 생성하면 클러스터 내부에서만 소통이 가능합니다. pod를 외부로 노출시키려면 service를 이용해야합니다. - Cluster Type : 다수의 파드에 접속할 수 있는 Pod-LB역할을 하는 service를 생성합니다. - NodePort Type : 실제 외부 클라이언트가 클러스터 내부로 접속할 수 있도록 하는 서비스 입니다. 2. cluster IP 실습 - 목적지로 사용할 3개의 pod를 yaml로 생성합니다. cat 2022. 6. 24. 이전 1 2 3 4 5 6 다음