1. 클러스터 모니터링 1-1. 소개 쿠버네티스에서 모니터링 대상은 클러스터의 노드, 파드들의 정보와 자원 사용률 등이 있다. 이런 모니터링 기능을 제공하는 솔루션으로 METRIC SERVER, PROMETHEUS, ELK STACK, DATADOG, dynatrace 등의 오픈소스 제품들이 있다. METRICS SERVER는 노드와 파드들의 정보를 메모리에 저장하고 보여주는 솔루션으로 인메모리 방식이기 때문에 과거 히스토리를 보기 위해서는 디스크에 저장하는 다른 오픈소스 솔루션과 함께 사용해야 한다. METRICS SERVER는 KUBELET 내부 컴포넌트인 cAdvisor에 질의하며 각 파드들의 데이터를 수집한다. 1-2. 설치 # MINIKUBE를 사용한다면 minikube addons enable..
1. 소개 쿠버네티스에서 서비스는 각 컴포넌트들로의 네트워크 연결을 제공하는 모듈이다. 유저는 웹 서비스를 통해 프론트엔드 파드의 웹서비스로 접속하고 프론트엔드 파드는 백엔드 서비스를 통해 백엔드 파드들과 통신 할 수 있다. 서비스의 타입은 Nodeport, ClusterIP, LoadBalancer의 세 가지가 있다. 2. 유형 1) Nodeport 노드의 포트와 노드 내부 파드의 포트 매핑 역할을 한다. 외부의 사용자가 노드로 커넥션을 시도할 때 사용하는 Nodeport와 매핑할 파드의 포트인 Targetport 정보를 가진다. 단일 노드, 단일 파드든 멀티 노드 멀티파드든 관계없이 selector에 원하는 label을 입력하는 것만으로 로드밸런싱 기능을 제공한다. 관리 목적으로 운영자가 원하는 노드..
1. Replication 개요 MySQL 복제 기능은 원본에서 대상 서버로 데이터를 복제 하는 기능입니다. 모든 DB, 선택한 DB, 또는 특정 테이블만을 복제하는 것도 가능합니다. 디폴트는 비동기 방식이므로 Slave는 Master에 영구적으로 연결되어 있을 필요는 없습니다. 2. 용도 Scale-out 솔루션 : Slave로 로드를 분산하여 성능을 향상시킬 수 있습니다. 모든 쓰기 작업은 Master 서버에서만 수행 가능합니다. 읽기 작업을 Slave들에 분산할 수 있으며 이를 통해 Master가 쓰기 연산에만 집중하여 쓰기 작업의 성능 향상도 얻을 수 있습니다. 백업 : Slave로 데이터가 복제되고 있고 복제를 중지할 수도 있으므로 백업을 Slave에서 수행할 수 있습니다. Master에 영향을..
1. POD 1-1. 소개 k8s에서 서비스를 운영할 때 하나의 서비스 인스턴스 단위로 사용하는 개념이다. k8s는 컨테이너 이미지를 직접 운영하지 않고 POD라는 단위로 묶어서 관리한다. 한 POD 안에는 여러 복수의 컨테이너들이 있을 수 있고 같은 POD안에서는 같은 네트워크, 볼륨을 공유할 수 있기 때문에 컨테이너 간의 연결을 쉽게 사용할 수 있다. 서비스 스케일링의 단위도 POD 단위로 수행한다. 1-2. 명령어 # Docker hub 등 리파지터리에서 이미지를 가져와 POD를 실행할 경우 kubectl run nginx —image nginx # POD 리스트와 상태를 조회 kubectl get pods # POD의 상세정보 조회 kubectl describe pod nginx2. Replica..
데이터모델링 1. 데이터모델링 프로세스 업무파악 → 개념적 데이터모델링 → 논리적 데이터모델링 → 물리적 데이터모델링 2. 업무파악 서비스의 UI를 그려보는 것으로 고객과 같이 요구사항을 이해하고 개념을 파악할 수 있다. (ovenapp.io 등 툴 협의할 때 사용 추천) 3. 개념적 데이터모델링 업무에 어떤 개념들이 있고 이들이 어떤 상호 작용을 하는지 찾아내는 단계. ER다이어그램을 사용한다. 모든 모델링 단계 중 가장 중요하다.(이후 단계는 기계적으로 해결 가능) ERD : 현실에서 개념을 추출하는 필터를 제공해주고 개념에 대해서 다른 사람과 대화하게 해주는 언어의 역할을 한다. [정보]와 정보들의 모임인 [그룹] 간의 [관계]로 표현한다. (draw.io 서비스 사용 추천) Identifier(식..
1. 쿠버네티스 기초 개념 쿠버네티스는 컴퓨터 클러스터에 걸쳐서 애플리케이션 컨테이너 스케줄링과 실행을 오케스트레이션 하는 오픈소스 플랫폼이다. 쿠버네티스의 구조를 간략하게 정리하면 다음과 같다. 1)쿠버네티스 클러스터 쿠버네티스 클러스터는 마스터와 노드로 구성되며 마스터는 클러스터를 상호조정하고 노드는 어플리케이션을 구동하는 역할을 한다. 쿠버네티스 클러스터의 추상화된 개념을 통해 개별 머신에 얽매이지 않고 애플리케이션 컨테이너를 분산시키고 스케쥴링하는 일을 자동화 할 수 있다. 2) 마스터 마스터는 애플리케이션을 스케줄링하거나 애플리케이션의 항상성을 유지한다. 또한 스케일링, 변경사항 반영 등 클러스터 내 모든 활동을 조율한다. 3) 노드 노드는 쿠버네티스 클러스터 내의 워커 머신으로써 동작하는 VM..