목록전체 글 (146)
후니의 IT인프라 사전
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bTxzCp/btrFHFBxKNv/4uMVZbwk19tKLs4tJ2pbLk/img.png)
1. PostgreSQL의 개요 (블로그) - 오픈소스 RDBMS로 무료 라이센스를 사용하며, 오래된 오픈소스의 안정성 등의 다양한 특징을 담고 있다. 2. CloudNativePG(CNPG) 소개 - 쿠버네티스 환경에서 PostgreSQL 워크로드를 관리해주는 오퍼레이터 2.1 구조와 아키텍처 - 비동기 혹은 동기 스트리밍 복제 구성의 클러스터 지원 - 하나의 Primary 노드와, 다수의 standby replicas로 동작합니다. - RW : 요청 작업을 Primary에서만 처리합니다. - RO : standby replicas와만 소통합니다. - R : Read-Only작업을 모든 노드와 소통하며 처리합니다. 3. CNPG 배포 helm을 통해서 cnpg 오퍼레이터를 설치할 수 있습니다. # Po..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mIONM/btrFGlKA5vW/Oc2q9HVjgDgubw3I3iSiK1/img.png)
1. MongoDB 개요 - 대표적인 NoSQL 데이터 베이스 - document 지향 DB로 key:value값으로 저장이 가능하며, 손쉬운 확장이 가능함. - Percona 오퍼레이터를 통해서 MongoDB 클러스터를 관리할 수 있다. 2. Percona 오퍼레이터 설치 (공식문서) 2.1 percona-server-mongodb-operator 파일을 가져옵니다. git clone -b v1.12.0 https://github.com/percona/percona-server-mongodb-operator cd percona-server-mongodb-operator 2.2 먼저 crd를 배포합니다. kubectl apply --server-side -f deploy/crd.yaml 2.3 names..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dmtmBc/btrFKaupN93/gXnYZww16XX7eUnxb8PfK1/img.png)
1. 카프카 소개 비동기 방식의 스트리밍 플랫폼이다. 분산 데이터 스트리밍 플랫폼 1.1 특징 - 높은 처리량 : 묶음 단위 배치 처리로 대용량 실시간 로그 데이터 처리에 적합 - 높은 확장성 : 브로커을 통해 scale in/out이 편리 - 높은 영속성 : 데이터를 캐싱 메모리를 통해 일시적으로 저장하고 빠르게 불러올 수 있음 - 높은 가용성 : 데이터 복제를 통해 장애 상황에 대비 1.2 기본 용어정리 - Producer : 데이터 제공자. 데이터(메시지, 이벤트)를 생성하여 카프카로 전달함. - Consumer : 데이터 소비자. 카프카로 부터 데이터를 받아 필요한 상태로 가공하여 사용함. - Brokers : Kafka 클러스터를 이루는 구성 단위이며, 쿠버네티스의 워커노드와 비슷한 느낌이다. ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bPFTj1/btrFGgXrfi7/RofykmbmytzFqbv7bJjJHK/img.png)
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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cDxzzH/btrFGSogmb9/NFBKyqwRFBBI8suer2f8K0/img.png)
1. 쿠버네티스 오퍼레이터 - 오퍼레이터는 쿠버네티스 추상화를 통해 관리 대상 소프트웨어의 전체 라이프사이클을 자동화, 애플리케이션을 패키징-배포-관리하는 툴입니다. (공식문서) - CRD(Custom REsource Definition) : 오퍼레이터로 사용할 상태 관리용 객체 Spec 정의 - CR(Custom Resource) : CRD의 spec을 지키는 객체들의 실제 상태 데이터 조합 - CC(Custom Controller) : CR에 규정된 상태를 유지하기 위한 컨트롤 루프 2. DB 기본지식 2.1. DB에서의 Transaction이란? - (일반적 정의) 쪼갤 수 없는 업무 처리의 최소 단위 - (DB적 정의) 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위 - (또 다른 정의..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bfIxWF/btrFKaaK0LL/bSe4kgGe469ObwobuF8fP1/img.png)
1. 실습가이드 (링크) Redis를 이용한 PHP 방명록 애플리케이션을 구성합니다. 해당 실습을 통해서 deploy 형태의 pod 배포, Redis의 Leader-Follower 구성, service를 통한 배포, frontend web과 연결, 파드 스케일 증가를 확인할 수 있다. 2. Redis는 무엇인가? In Memory Cache 시스템으로 메모리 속에 자료를 저장하여 처리 속도가 매우 빠른 장점이 있다. Key-Value 저장소로, 다양한 형식의 데이터를 지원하며 NoSQL 형태이다. (참고블로그) Redis는 메모리 상의 DB라는 점에서 영속성을 문제를 가질 수 밖에 없는데, 이를 보완하기 위해서 데이터를 Disk에 저장할 수 있도록 하여 영속성을 보장하도록 했다. 데이터를 DISK에 저장..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b1tHXm/btrFHsphlYo/gLEGQfsFy8LbdC4BRMZqbK/img.png)
1. stateless vs stateful - stateless는 쉽게 말해서 상태가 보존되지 않는 다고 생각하면 됩니다. 삭제되고 다시 살아나면서 hostname등의 기본적인 정보가 변경됩니다. - stateful의 경우 이와 반대로 동일한 형태가 유지되는 것이라고 할 수 있습니다. - 특히나 nginx와 같이 웹서버 등은 만약 하나의 pod가 죽어도, 생성되는 pod가 같은 nginx pod 이기만 하면됩니다. 그러나 DB와 같이 내부의 내용까지 보존되어야 하는경우 hostname이나 volume 연결정보 등 부터 모두 기존의 내용과 동일해야하므로 반드시 같은 내용의 pod가 등장해야 합니다. 2. stateful 및 headless 소개 - 이처럼 stateful 상태에서는 변동되는 IP와 같이 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qA0xR/btrFJlwdnU0/P1jOSMB8gIElNxATzZdP81/img.png)
1. Service 개요 - 기본적으로 pod를 생성하면 클러스터 내부에서만 소통이 가능합니다. pod를 외부로 노출시키려면 service를 이용해야합니다. - Cluster Type : 다수의 파드에 접속할 수 있는 Pod-LB역할을 하는 service를 생성합니다. - NodePort Type : 실제 외부 클라이언트가 클러스터 내부로 접속할 수 있도록 하는 서비스 입니다. 2. cluster IP 실습 - 목적지로 사용할 3개의 pod를 yaml로 생성합니다. cat
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yiAt9/btrFHJjZPAA/jq6jxtanpzprfOK6rtNYwk/img.png)
1. 스토리지 소개 - 쿠버네티스에 사용되는 스토리지는 emptyDir / hostPath / PV가 있습니다. 하나씩 가볍게 살펴보겠습니다. 2. emptyDir - Pod 생성시 기본적으로 설치되는 볼륨으로 해당 pod의 볼륨입니다. - pod가 삭제되면 바로 같이 삭제되므로 일시적인 사용에만 적절합니다. 3. hostPath - node 볼륨이라고 이해하면 쉽습니다. - 해당 node에 설치되는 볼륨으로 같은 node를 공유하는 pod끼리 공유가 가능합니다. - hostPath는 pod볼륨이므로 pod로 생성됩니다. - hostPath를 만드는 yaml은 아래와 같습니다. cat
1. DB 관련 용어 정리 Master → Source ⇒ 프라이머리 Slave → Replica ⇒ 세컨더리 multithreaded slave → multithreaded applier ‘명령어, 시스템 변수, PS 테이블명, process list, replica status’ 등에 용어 변경 적용 예시) SHOW SLABE STATUE ⇒ SHOW REPLICA STATUS 1. Transaction의 의미 - 원자성(Atomicity) : 일부만 실행될 수는 없다. 절대 깨져서는 안되는 하나의 작업 - 일관성(Consistency) : 모든 원장에 동일한 내용이 기록되어야함 - 지속성(Durability) : 로그를 통해서 기록이 유지됨. - 독립성(Isolation) : 각각의 작업은 서로 영..
안녕하세요! DevOps Engineer 이장훈입니다. > Project > Dev Stack > Ops Stack
제목1 제목14234 제목223423