본문 바로가기

docker7

MongoDB 클러스터(리플리카 셋, 샤드) 지난번 AWS DocumentDB 에 대한 게시물을 통해 mongoDB와 같은 도큐먼트 데이터베이스란 무엇인지, AWS DocumentDB 클러스터 생성 과정에 대해 간략히 소개해드렸는데요. 오늘은 mongoDB의 클러스터를 구성하는 두 가지 방법인 리플리카 셋(읽기 전용 복제본) 클러스터와 샤드 클러스터를 docker 컨테이너로 구성하는 테스트를 통해 mongoDB 클러스터 구성 방법과 그 특징에 대해 알아보겠습니다. 리플리카 셋(replica-set) 리플리카 셋이란 리플리카 셋은 mongoDB에서 사용하는 읽기 전용 복제본이 포함된 클러스터(마스터/슬레이브 노드 모두 포함)를 말하며 고가용성을 목적으로 사용됩니다. 아래는 리플리카 셋의 기본 구조입니다. 마스터 서버 장애 발생 시 슬레이브 서버들 간.. 2023. 3. 31.
Alpine Linux로 Docker 이미지 빌드 개인 테스트 목적으로 Docker를 애용하고 있는데요. 원하는 패키지가 설치된 Docker 공식 이미지가 없는 경우 Docker hub에 게시된 공인받지 않은 커스텀 이미지를 받아서 사용하기 보단 원하는 Docker 이미지를 빌드하여 사용하곤 합니다. 이때는 보통 CentOS 환경이 익숙하기 때문에 저는 CentOS 7 이미지를 베이스 이미지로 하여 빌드를 하는데 최근에 Alpine Linux를 통해 Docker 이미지를 빌드하는 방법에 대해 알게되어 기술 공유하고자합니다. Alpine 리눅스란 공식 사이트 https://www.alpinelinux.org/1. Alpine Linux는 경량 리눅스 배포판으로 Docker 이미지 빌드 시 베이스 이미지로 주로 사용됩니다. (물론 Docker 이미지를 빌드.. 2023. 3. 13.
Docker buildx를 통한 멀티 플랫폼 이미지 빌드 지난번 t4g 타입의 EC2 인스턴스를 소개하며 Arm 기반의 AWS Graviton2 프로세서에 대해 간략히 소개해드린 바가 있습니다. 이와 같이 Graviton 프로세서가 적용된 인스턴스 유형은 Amazon EC2 T4g, M6g, C6g 및 R6g 인스턴스 유형이 있는데요. Amazon EKS의 노드 그룹 생성 시에도 T4g, M6g, C6g 및 R6g 인스턴스 유형을 선택할 수 있기에 Docker 이미지 빌드 및 배포 과정에서 발생할 수 있는 CPU 아키텍쳐 관련 문제 상황 및 해결 방법에 대해 소개해드리고자 합니다. Docker 이미지와 CPU 아키텍쳐 컨테이너에서 사용되는 이미지와 컨테이너의 개념은 어플리케이션 실행에 필요한 바이너리와 라이브러리를 패키징하여 만든 이미지를 Docker 이미지,.. 2023. 3. 11.
container multicast 컨테이너 멀티캐스트 # docker ## bridge 네트워크에서 컨테이너 안으로 멀티캐스트 트래픽 수신 불가(k8s와 동일, 포트 매핑해도 안됨) ## 네트워크 타입을 host로 설정 시 멀티캐스트 트래픽 수신 가능 # k8s ## 포드간 멀티캐스트는 weave-net cni 플러그인 배포 시 가능 ## k8s에서도 host 네트워크 사용 시 멀티캐스트 트래픽 수신 가능 yaml 파일 예제 [root@ip-10-0-10-70 ~]# cat centos-deploy.yaml apiVersion: apps/v1 kind: Deployment metadata: name: centos spec: replicas: 2 selector: matchLabels: app: centos template: metadat.. 2023. 3. 7.
traefik 리버스 프록시 로드밸런서 traefik 리버스 프록시 로드밸런서 공식 문서 https://doc.traefik.io/traefik/ 도커 이미지 https://hub.docker.com/_/traefik haproxy와 유사하지만 웹 대시보드를 제공하고 컨테이너 레이블을 통해 로드밸런싱 대상 컨테이너를 자동으로 검색하는 기능이 있음 kubernetes 의 ingress 로도 사용 가능(ingress-nginx 와 같은 역할) # traefik 컨테이너 실행 -> 정적 설정 파일 생성하여 컨테이너 실행 샘플 설정 파일 참고 https://raw.githubusercontent.com/traefik/traefik/v2.5/traefik.sample.yml mkdir -p /etc/traefik/dynamic_conf/ mkdir -.. 2023. 3. 6.
docker swarm docker swarm 공식 사이트 문서 https://docs.docker.com/engine/swarm/ docker swarm 은 도커 엔진 기반이며, 설정이 빠르고 간단하며, 소형~중형 서비스에 적합 반면에 kubernetes 는 기본 구성 서비스의 종류가 많고 클러스터의 모든 설정을 yaml 파일로 구성 가능, 중형~대형 서비스에 적합 docker swarm 은 도커 엔진에 기본으로 포함되어 있어서 도커만 설치되어 있다면 바로 사용 가능 # swarm 활성화 -> 매니저 노드 역할을 수행할 도커 서버에서만 수행 docker swarm init 인터페이스가 여러개인 경우(매니저 노드의 아이피 지정) docker swarm init --advertise-addr 192.168.2.10 swarm 모.. 2023. 3. 6.
docker buildx 좀 더 상세한 내용의 가이드는 아래 게시글 참고 https://engmisankim.tistory.com/29 docker buildx 기존 docker build 명령어보다 다양한 옵션을 제공하는 docker cli plugin 공식 가이드 문서 https://docs.docker.com/buildx/working-with-buildx/ 공식 github https://github.com/docker/buildx # 설치 최신 릴리스 확인 https://github.com/docker/buildx/releases/latest mkdir -p ~/.docker/cli-plugins/ curl -L https://github.com/docker/buildx/releases/download/v0.6.3/bu.. 2023. 3. 6.