본문 바로가기

공부기록

(49)
[k8s] Monitor Cluster Components Monitor Cluster Components Monitor 쿠버네티스에서 기본적인 시스템 메트릭인 CPU, Memory 부터 클러스터에 노드 수, 컨테이너 상태 등 많은 것을 모니터링 해야한다. 이런 것들을 모니터링하고 metric을 저장하고 분석하기 위한 솔루션이 필요한데 쿠버네티스는 이 모든것들을 제공하지는 않기 때문에 Prometheus, Metrics-Server, ELK, Datadog, Dynatrace같은 오픈소스 솔루션들이 필요하다. Heapster vs Metric Server Heapster는 kubenetes를 모니터링하기 위한 오리지널 프로젝트였지만 현재는 사용되지 않는다. Metric server는 쿠버네티스 모니터링 아키텍처에서 core metric pipeline을 효율적으..
[k8s] Kubernetes Monitoring Architecture Kubernetes Monitoring Architecture : 클러스터의 상태와 클러스터 안에 실행 중인 파드들을 모니터링 하는 방법에 대해 알아보자. system metrics service metrics core metric pipeline monitoring pipeline system metrics 노드나 컨테이너의 CPU, Memory utilization 같은 시스템 관련 메트릭 1.core metrics 쿠버네티스 내부 컴포넌트들이 사용하는 메트릭 현재 클러스터 안이나 내장 오토스케일링에서 사용할 수 있는 자원이 얼마인지 파악 kubectl top command에서 보여주는 cpu/memory 사용량, pod/container의 disk 사용량 등 2.non-core metrics k8s..
[k8s] Multiple Schedulers Multiple Schedulers node에 pod를 스케줄링하기 전에 custom condition을 체크하는 자체적인 스케줄링 알고리즘을 만들고 싶을 경우 default scheduler에 스케줄 프로그램을 deploy하거나 추가적인 scheduler를 쿠버네티스 클러스터에 추가할 수 있음 애플리케이션 마다 다른 스케줄러를 이용할 수 있다. 예를들어, 다른 app은 default를 사용하게하고, 특정 app은 custom scheduler를 사용할 수 있다. pod를 생성할 때 어떤 스케줄러를 사용할지 정의할 수 있다. Deploy Additional Scheduler kube-scheuler binary를 다운로드 받은 후 옵션과 함께 서비스로 실행한다. additional scheduler를 d..
[k8s] static pod Static pod 스태틱 파드란? kube-apiserver를 통하지 않고 kubelet이 직접 실행하는 파드 kubelet이 직접 관리하고, 이상이 생기면 재시작 지정한 디렉터리에서 yaml파일들을 kubelet이 읽고 파드를 생성하고, 계속 파드가 유지되도록 관리함 파드만 생성할 수 있고, replica나 deployment는 생성 못함 kubelet은 오직 pod level에서만 작동 kubelet이 실행중인 노드에서만 실행되고 다른 노드에서는 실행되지 않음 kube-apiserver는 조회는 할 수 있지만 스태틱파드에 어떤 명령을 실행할 수는 없음 kubectl get pods 명령어로 static pod도 조회 가능 kbuelet이 pod를 생성하면 kube-apiserver가 mirror o..
구글드라이브에 있는 문서 서버로 옮기기 cd datasetsgdown https://drive.google.com/drive/folders/1KFFJkYybPNqKOH3rAyzKmE2H7Ih_ypRU -O /tmp/folder --foldercd ..
[elasticsearch] elasticsearch 10000개 이상 데이터 조회 python es에서 데이터를 10000개 이상 조회하려면 scroll id를 사용하거나 elasticsearch helpers의 scan 을 사용해야한다. helpers.scan elasticsearch.helpers.scan(conn, scroll='10m', index=index, doc_type='_doc', size=10000, query=query) es.scroll def scroll_API(index, body): result = [] _KEEP_ALIVE_LIMIT='30s' # Initialize the scroll page = es.search(index=index ,body=body ,scroll=_KEEP_ALIVE_LIMIT ,size=10000 ,track_total_hits=True ) ..
[Docker] Docker Compose로 Django 프로젝트 세팅 프로젝트 컴포넌트 정의 프로젝트를 시작하기위해 Dockerfile, python dependencies파일, docker-compoes.yml파일이 필요하다. Dockerfile 먼저, 디렉토리에 Dockerfile을 생성한다. # syntax=docker/dockerfile:1 FROM python:3 ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 WORKDIR /code # 작업 디렉토리를 code로 변경 COPY . . # 현재 디렉터리의 모든 파일 이미지를 작업 디렉터리로 복사 RUN pip install -r requirements.txt COPY . /code/ 이 도커 파일은 파이썬3 Parent 이미지를 시작한다. 부모 이미지는 src라는 새..
[PostgreSQL] macOS에 PostgreSQL 설치 및 설정 설치 설치전 brew에 postgresql을 검색해본다. brew search postgresql 기본 버전으로 설치를 시작한다. brew install postgresql 서비스 시작 brew services start postgresql postgres -V 설정 사용자 권한 계정 설정 먼저, postgre에 접속한다. psql postgres 아래의 명령어로 role 리스트를 확인 할 수 있다. postgre는 설치시 자동으로 계정을 생성해준다. postgres=# \du 권한을 설정해주기 전에, 기본으로 생성된 슈퍼유저의 비밀번호를 설정한다. postgres=# \password postgres 데이터 베이스 생성 테스트 데이터 베이스를 생성해봅니다. create database testdb; ..

반응형