GithubHelp home page GithubHelp logo

docker_project's Introduction

docker_project

prometheus 를 활용한 cpu 자원 관리, ping 을 활용한 health check

health check

  • 설정
  1. json library 설치 : setting 폴더의 json_build.sh 파일 실행
  2. /usr/local/lib : 라이브러리 경로 추가
  3. json/health_container.json 컨테이너 정보 수정
  4. health 실행 시 슈퍼 유저 권한 필요
  • 동작
  1. health_container.json 파일에 저장된 컨테이너 정보(name, bridge)를 추출한다.
  2. 컨테이너의 IP 주소를 docker inspect [option]을 사용하여 컨테이너의 private IP address를 조회한다.
  3. 컨테이너에 PING ICMP 패킷을 전송하여 컨테이너의 상태를 확인한다. (health check)
  4. 타임 아웃 되거나 연결에 문제가 발생하였다면 문제가 발생한 컨테이너를 docker restart 를 통해서 재가동한다.
  5. 2의 과정으로 돌아가 지속적으로 health check를 수행한다.

resource manager

  • 설정
  1. json library 설치 : setting 폴더의 json_build.sh 파일 실행
  2. /usr/local/lib : 라이브러리 경로 추가
  3. json/health_container.json 컨테이너 정보 수정
  4. cadvisor 실행
  5. prometheus.yml 파일 수정
  6. prometheus 실행
  • 동작
  1. cadvisor를 통해 수집된 컨테이너 메트릭을 prometheus로 전송한다.
  2. prometheus에 수집된 모니터링 데이터를 curl [url/query]를 통해서 json 파일의 데이터를 조회한다.
  3. 모니터링으로 통해 수집된 정보를 통해서 프로그램 된 정책에 의해 컨데이너에게 자원을 할당한다.
  4. 1의 과정으로 돌아가 지속적으로 컨테이너 자원 사용율을 관리한다.

setting

cadvisor 컨테이너 실행

docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:rw \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --volume=/dev/disk/:/dev/disk:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  google/cadvisor:latest

prometheus 컨테이너 실행 예시

docker run -d --name prometheus -p 9090:9090 -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

Error while loading shared libraries: libxxxx.so 발생 시

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/lib

만약 위의 명령으로 해결이 되지 않는다면 /etc/ld.so.conf.d/ 디렉토리에 libxxxx.conf 파일을 만들어서 이 파일에 /usr/local/lib 를 지정해둔다. 그리고 난 뒤에 sudo /sbin/ldconfig 를 실행하여 갱신한다.

docker_project's People

Contributors

yudonggeun avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.