Docker,Jenkins 썸네일형 리스트형 kafka 실행시켜보기 (feat. docker) 공식 문서에 나와있는 docker-compose.yml 내용을 그대로 복사붙여넣기하고 추가로 내가 필요한 부분은 더 추가해서 docker-network를 구성하였다 . 내용은 kafka와 zookeeper를 실행시키고 zookeeper를 그대로 연결해서 띄우는거다. 실제로 로컬에서 일일히 띄우기 귀찮았는데 docker를 사용하면 파일 하나만 실행시키면 자동으로 되는게 너무 편하다. version: '3' services: zookeeper: image: confluentinc/cp-zookeeper:7.0.1 container_name: zookeeper ports: - "2181:2181" networks: - kafka-network # Kafka와 관련된 컨테이너와 같은 네트워크 그룹에 속하도록 설.. 더보기 MSA에서 데이터베이스 값 동기화 및 kafka connect docker compose 구성 일단 각종 용어 정리부터 해보겠습니다. Connector (Debezium) 원본 데이터 베이스에 리플리케이션 클라이언트로 붙어서 사용 데이터 변경을 캡처하고, 변경 메시지를 카프카에 프로듀싱 하는 역할 MS-SQL, MySQL, Postgre... 등 여러 데이터베이스와 연동 가능 직렬화, 역직렬화 규격을 사용 (redis 와 똑같음) ZooKeeper 분산 코디네이션 시스템으로, 카프카 클러스터의 정보를 관리, 리더 선출, 잠금, 동기화를 위해 사용 Connector 카프카 토픽에서 읽어낸 메시지를 처리하여 읽어내는 애플리케이션 주로 데이터를 변형하거나 가공하여 대상 데이터베이스에 적용하는 로직을 수행 Source Connector vs Sink Connector Source Connector: da.. 더보기 [jenkins] docker build 후 amazon ECR로 이미지 업로드하기 1. plugin 설치 먼저 젠킨스에 Amazon ECR, docker pipeline 플러그인을 설치하고 젠킨스를 재부팅 해주세요. 2. ECR Repository 생성 ECR에 이미지를 업로드 하려면 당연히 이미지 저장소가 있어야하겠죵. 하나의 github repository마다 하나의 ECR 이미지 저장소가 필요합니다. Create Repository를 눌러 이미지 별로 레포지토리를 생성해줍니다. 3. AWS Credentials 설정 aws credential 등록부분을 참고하여 AWS CRedentials를 등록해줍니다. 해당 계정은 ECR에 이미지를 업로드하는 권한을 가지고 있어야 합니다. 만약 aws ECR, ECS와 같은 서비스를 젠킨스에서 사용하고자 한다면 젠킨스가 aws 리소스에 접근하.. 더보기 JenkinsFile로 pipeline 구축 파이프라인을 만드는방식 3가지 WEB UI를 통해서 Job 구성에서 직접 스크립트 코드 작성 SCM을 이용해서 Jenkinsfile 에 스크립트 코드 작성 - github에 jenkinsfile을 만들어 두고 그걸 땡겨와서 젠킨스가 실행 Blueocean 플러그인으로 UI를 통해서 스크립트 코드 작성 - github에서 관리 이중에서 내가 원래 사용했던 방식은 WEB UI를 통해서 직접 스크립트 코드를 작성하고 변경될 때마다 jenkinsServer에 들어가서 작성하곤 했었다. 하지만, 소마 선배분들의 프로젝트를 보니 대부분이 jenkinsFile을 작성하여 파이프라인코드를 jenkins에서 가져갈 수 있도록 설계를 해두셨다 그래서 왜 ? 라는 의문을 가지고 인터넷서칭을 해보았다. 더보기 Jenkins에.. 더보기 Docker와 springboot,mysql Docker Compose로 올려서 사용하기 🔎 Springboot 프로젝트 설정 도커 환경에서 DB를 사용하는 애플리케이션 구동을 목표로 하므로 최대한 간단하게 프로젝트를 구성해볼께요. springboot 프로젝트는 사용자에게 글을 입력받으면 DB에 저장하고 목록을 확인할 수 있는 아주 간단한 구조입니다. 🔎 springboot 설정파일 (application.yml) datasource의 url 부분에서 호스트 부분 설정을 잘 해주셔야 합니다. 현재 호스트가 db-mysql로 되어 있는데 이 호스트명은 앞으로 도커환경에서 mysql이 구동되는 컨테이너의 이름입니다. spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://db-mysql:3306/mydb?.. 더보기 Container Volume 이란 ? Container Volumn이란 ? Container image는 Read ONLY 속성을 가지고 있다.(수정 불가 !) 이러한 image를 run 하게 되면 , 하나의 process 가 된다. Container Image 는 Read ONLY이지만,Run 된 Container에는 rw(read & write) layer 가 생성 모든 데이터는 rw layer 에 쌓이게 된다. 하지만 ro와 rw는 하나인 것 처럼 보여주는데 이를 Union File System라고 한다. docker rm으로 도커 컨테이너를 삭제했다고 해보자. 이럴 경우, ro & rw layer모두 사라지게 된다. ( 따라서 rw에 저장되었던 모든 데이터도 함께 사라지게 된다 ) 이러한 상황을 막기 위해, 영구적으로 보존하기 위한 .. 더보기 Container Monitoring Tool docker stat 컨테이너의 runtime 통계 확인 ex) docker stats [OPTIONS][Container...] docker event Docker HOST의 실시간 event 정보 수집 후 출력 docker events -f container= docker image -f container= cAdvisor (구글에서 만든 docker 모니터링 툴) https://github.com/google/cadvisor 더보기 Docker 리소스 관리 Container 하드웨어 리소스 제한 Container 기본적으로 호스트 HW 사용 제한이 없다(따로 걸어 놓지 않는 이상) Docker command 를 통해 제한할 수 있는 리소스 CPU Memory Disk I/O docker run --help 이를 통해 다양한 리소스 제한 명령어를 확인할 수 있다. 1. Memory 리소스 제한 옵션의미 –memory, -m 최대 메모리양 지정 –memory-swap 스왑 메모리 영역에 대한 설정. “메모리+스왑” 합친 값 ( 생략 시, 메모리의 2배 만큼 ) –memory-reservation –memory 값 보다 적은 값으로 구성하는 soft 제한 설정 –oom-kill-disable OOM killer가 프로세스를 kill하지 못하도록 보호 docker.. 더보기 이전 1 2 다음