목록Container (34)
Connecting
타워형 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..
연구실에는 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..
나만의 홈페이지를 만들고 싶을 때, 처음부터 시작하는 방법도 존재하는 다양한 오픈소스 프로그램을 활용해서 방법도 있다. Wordpress라는 좋은 플랫폼도 존재하지만 이번 시간에서는 xpressengine을 이용해서 홈페이지를 만들고자 하는 분들에게 도움을 드리고자 한다. Xpressengine 요구사항 XE(xpressengine)는 공식 사이트에 의하면 다음과 같은 기본 요구사항이 필요하다. 본 문서는 버전 3.0 이상을 기준으로 한다. 웹서버 : Apache & Nginx PHP 7 이상 PDO PHP Extension cURL PHP Extension FileInfo PHP Extension GD PHP Extension Mbstring PHP Extension OpenSSL PHP Extensi..
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로 사용할 경우 추가적인 비용을..
2020년 애플리케이션을 디플로이할 때 Docker를 활용하는 일은 당연한 일이 되어가고 있다. 본문에서는 Docker가 무엇인지 어떻게 사용하는지에 대한 설명을 다루는 것이 아닌 Docker를 활용해 데이터베이스를 초기화 방식에 대해서 알아보도록 하는 시간을 가진다. Docker에 대한 기본 지식은 필자 블로그에 설명했기 때문에 Docker가 무엇인지, 활용하는지에 대한 방법을 잘 모른다면 글을 읽어보고 오는 것을 추천한다. 환경 Docker를 사용하는 사람이라면 윈도우보다는 Linux, MacOS에서 매끄럽게 동작한다는 사실을 알고 있을 것이다. 윈도우도 예전보다 좋아지긴 MacOS 카탈리나에서 실습을 진행했음을 밝힌다. Docker 데이터베이스 SQL PostgreSQL, MySQL이든 Docker..
nGrinder는 네이버에서 서버 성능 측정을 목적으로 개발한 오픈소스 프로젝트이다. 실제 서비스를 시작하기 전에 서비스의 부하 테스트를 위함으로, 실제 서비스 이전에 어느 정도의 부하를 견딜 수 있는지에 대한 목적을 두고 있다. nGrinder는 Controller와 Agent로 구분되어 있는데, Controller는 웹UI와 에이전트에게 명령을 전달하고 이에 대한 결과를 수집하는 역할을 담당하고, Agent는 Controller부터 수신된 정보를 해당 서버에 가상 유저를 생성하여 부하를 발생시킨다. 물리 머신에서 설치하기 위해서는 자바를 비롯한 각종 의존성 파일을 설치해야 하기 때문에 Docker를 사용하여 설치하도록 한다. nGrinder Controller $ docker run -d -v ~/n..
ELK Docker 설치 방법 ELK는 Elasticsearch, Kibana, Logstash 세 가지의 오픈소스 프로젝트의 약자로, 각 제품이 연동되어 데이터 수집 및 분석도구로 많이 사용되고 있다. 필자가 다니고 있는 연구실에는 ELK를 활용하여 모든 서버의 로그기록과 서비스 메트릭 정보를 수집하여 활용하고 있다. Docker를 사용하지 않는다면 복잡한 방법으로 설치를 진행했겠지만 연구실에 Docker 서비스가 정상적으로 정착된 상황에서는 90% 이상의 서비스들이 Docker 환경에서 운영되고 있으며, 대부분의 프로젝트 역시 Docker로 빌드하여 사용하고 있다. 이번 시간에는 ELK를 Docker Compose 파일을 통해 설치하고, 운영하는 방법에 대해서 알아보도록 한다. 설치하고자 하는 서버에..
Mattermost 설치 및 운영하기 Slack의 강력한 대체제로 불리는 Mattermost는 온프레미스 환경에서 설치하여 운영할 수 있는 오픈소스 팀 채팅 프로그램이다. 다른 오프소스 채팅 프로그램으로서 Rocket.Chat과 Zulip이 있으나 Mattermost는 기업에서 사용할 수 있도록 최적화된 팀 기반 채팅 프로그램이라고 할 수 있다. 대표적으로 삼성, 미국 사회보장국, 우버에 이르기까지 각종 정부기관과 금융기간까지 사용하기 때문에 팀 기반의 개발 업무 프로세스에 있어서 어떠한 플랫폼 결정을 고민 중이라면 Mattermost을 선택하는 방안도 적극 검토할 필요가 있다. 정부나 기업에서 Mattermost를 선택하는 이유는 보안에 대한 이유를 들 수 있다. Slack의 경우 온프레미스 환경에 설..