목록도커 (17)
Connecting
이번 시간에는 Docker를 활용하여 카프카를 실행하고 CLI 환경에서 토픽을 생성하고, 생산자 및 소비자 환경을 구축하여 메시지 전달 방식에 대해 실습한다. 본 실습은 confluent에서 제공하는 기본 튜토리얼을 바탕으로 진행하였으며, Docker 기반으로 실행해야 하므로 본인이 사용하고 있는 환경에 Docker 설치가 완료되어 있어야 한다. 만약 Docker 설치가 어렵거나 네이티브로 실행해야 하는 경우 이전시간에 윈도우, 우분투를 기반으로 설치방법을 기술하였으니 전 챕터를 확인하길 바란다. 카프카 설치 필자 환경은 다음과 같다. MacBook Pro 2019 16인치 Intel Core i9, 32GB macOS Big Sur 11.1 Docker version 20.10.0-rc1, build ..
Let's learn how to use Docker 이제 본격적으로 Docker 기본 명령어를 실습하고 사용할 수 있도록 한다. 참고로 리눅스 사용자의 경우 root 혹은 sudo 권한을 통해 명령어를 실행해야 한다. 해당 계정에 권한을 줘서 실행할 수 있지만 권장하지 않는다. docker search Docker에서 이미지를 검색하기 위해 사용한다. $ docker search ubuntu $ docker search centos $ docker search jenkins docker pull Docker를 사용하기 위해 이미지를 받기 위한 과정으로 별도의 버전을 기술하지 않는 경우 최신 버전으로 설정되며, ubuntu와 filebrowser 이미지를 다운로드한다. $ docker pull ubunt..
서버와 네트워크 간단한 역사 1957년 인류 최초 인공위성인 소련의 스푸크니호의 발사가 성공하자 핵전쟁 등의 상황에서도 살아남을 수 있는 네트워크를 연구하였고 이 결과 기존의 회선 교환(circuit switching)방식보다는 패킷 교환(packet switching)방식이 매우 견고하고하다는 것을 발견하여, 미국 국방부에서는 1962년 ARPANET (Advanced Research Projects Agency Network) 프로젝트를 시행, 1969년 로스 앤젤레스에 있는 캘리포니아 대학교에 that's us! 메시지를 전송하는데 성공한다. 초기 군사용 및 연구용으로 사용되던 ARPANET은 사용요구가 많아지면서 1983년 미국 국방성은 군사용 네트워크를 분리시키고 아파넷을 대중에게..
타워형 12Layer 케이스에 PoE 스위치와 PoE HAT, 라즈베이파이 4 8GB 12개를 이용해서 Docker Cluster 시스템을 구축하게 되었다. 마지막 사진은 테스트하기 위해서 저렇게 둔거고 추후 랙에 들어갈 예정이었다. 하드웨어적으로는 준비가 끝나고 ubuntu 20.04과 Docker 설치를 완료하고 테스트를 하려는데 아래와 같은 에러가 날 맞이했다. $ ubuntu@main:~$ sudo docker run jusk2/topent Unable to find image 'jusk2/topent:latest' locally latest: Pulling from jusk2/topent 8559a31e96f4: Pull complete bd517d441028: Pull complete f670..
리눅스 컨테이너 즉 docker는 프로세스 형태로 자원을 격리하여 사용하기 때문에 컨테이너가 삭제되면 기존에 저장되었던 데이터는 사라진다. 이를 예방하기 위해서 docker volume을 사용하거나 로컬 컴퓨터 파일에 마운트하여 docker 내부에 생성되는 데이터를 저장하는 과정이 필요하다. 이번에는 postgres 데이터베이스를 통해서 실습을 진행하도록 하겠다. $ docker run -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=1q2w3e4r -d postgres Unable to find image 'postgres:latest' locally latest: Pulling from library/postgres d121f8d1c412: Already ex..
Description 본 문서에서는 Kafka를 사용하기 위해 각 OS별로 설치하는 방법에 대해 기술합니다. 이전 이론에 대한 학습과 더불어 본 설치를 통해서 본격적인 실습에 준비하시길 바랍니다. 각 OS 버전에 따라 설치방법이 조금씩 다를 수 있으며, 기술한 버전 이외의 약간의 차이점이 있거나 실행이 정상적으로 진행되지 않을 수 있습니다. 따라서 본인 환경에 직접 적용하기 이전에 가상환경 등 테스트를 진행하는 것을 권장하며 혹은 Docker로 설치하는 것을 적극 권장합니다. Windows 본 설치는 윈도우 2004 버전에서 진행했습니다. Apache Kafka를 설치하기 위해서는 먼저 JDK 1.8이 설치되어 있어야 합니다. 현재 LTS 버전인 JDK 11의 경우 Kafka 설치 및 운영시 오류가 발생..
연구실에는 docker-swarm을 이용한 7개의 VM을 사용 중에 있습니다. 여기에 ngrinder를 통해 개발 중인 프로젝트의 성능 측정을 목적으로 사용하고 있습니다. ngrinder의 자세한 설명을 보고 싶으시다면 여기 링크를 참조하세요. ngrinder를 사용하기 위해서는 agent가 controller에 연결되어 있어야 하는데 이 부분이 정상적으로 연결되지 않는 버그가 심심치 않게 발생하고 있습니다. 필자는 다음과 같은 방법으로 문제를 해결했습니다. version: '3.5' services: controller: image: ngrinder/controller restart: always ports: - "1000:80" - "16001:16001" - "12000-12009:12000-120..
Podman이 무엇인가? container의 대표주자 Docker가 필수적으로 자리 잡게 되면서 이제 서비스를 배포하는 시간이 획기적으로 단축되었으며, 작업의 효율성이 증대되었습니다. Docker는 특정 서버의 의존성이나, 운영시 발생할 수 있는 스노 플레이크 서버의 문제점을 해결할 수 있기 때문에, 배 포환겨에 혁신을 이루어냈습니다. 이를 적극적으로 활용하기 위한 대규모 클러스터링 시스템인 Docker Swarm, Kubernetes가 성공적으로 안착하였고 현재까지도 가장 인기 있는 컨테이너 플랫폼으로서 성장하고 있습니다. 하지만 Docker 데몬이 죽게되면 모든 Docker 위에서 동작하고 있는 서비스들이 중단돼 문제가 발생하게 됩니다. podman은 이런 문제점을 해결하기 위해서 나온 컨테이너 플랫..
왜 Harbor를 도입했는가? Docker를 사용하다 보면 Docker Registry가 반드시 필요하다. 특히나 기업 혹은 본인 연구실에서는 관련 서비스를 Docker 전환이 진행하고 있는 과정에서 Private Docker Registry는 반드시 필요하다고 할 수 있다. 기존에서는 Sonatype nexus를 사용했으나 maven, npm 등 사설 레지스트리로 사용하는데 충분하지만 Docker로 사용하기 위해서는 https 사용할 수 없어 추가적인 설정이 필요했기 때문에 계속해서 사용하기 에는 적합하지 않다고 판단하였다. 사실상 Docker Hub를 사용하면 간단하게 문제를 해결할 수 있겠지만, 무료로 사용하기 위해서는 public으로 공개해야 하는 점, private로 사용할 경우 추가적인 비용을..
본 문서는 완벽한 IT 인프라 구축의 자동화를 위한 Kubernetes 책의 내용을 일부 발췌하여 작성한 글입니다. 글의 이해도를 높이기 위해서는 본 책을 구매해서 내용을 학습하는 것을 추천합니다. 책의 링크와 소스코드는 아래에 공유해드리도록 하겠습니다. 개발환경 OS : MAC OS 필수 프로그램 : Docker, minikube IDE : Visual Studio Code VCS : GIt 소스코드 필자의 글에서 자세한 내용은 전부 설명하겠지만 소스코드가 필요한 경우에는 소스코드를 다운로드하여서 실습을 진행하길 바란다. 책 소스코드 : https://github.com/ToruMakabe/Understanding-K8s 필자 소스코드 : https://git.wisoft.io/seongwon/kube..