목록분류 전체보기 (141)
Connecting
Kubernetes & Docker Part 2 쿠버네티스 기초 다지기 3/e 본 문서는 kubernetes 공식 문서를 참고하여 작성되었습니다. Kubernetes (K8s) 컴포넌트 Master Components 클러스터의 관한 전반적인 스케줄링과 이벤트를 감지하고 반응하는 역할을 담당한다. 마스터 컴포넌트는 클러스터 내 어떠한 머신에서 동작할 수 있으나, 간결성을 위해서 동일 머신 상의 모든 마스터 컴포넌트를 구동시키며, 사용자 컨테이너에서는 동작하지 않는 것이 일반적이다. 종류 역할 kube-apiserver Kubernetes API를 노출하는 컴포넌트 이며, 수평적 스케일을 위해 설계 etcd 분산 데이터 저장소, 클러스터 상태 저장하며 백업은 필수로 진행하여야 함 kube-scheduler..
Docker 컨테이너 성능 벤치마크 지난 시간에는 한정된 자원을 사용하기 위한 노력들과 컨테이너의 정의와 사용하는 이유, Kubernetes가 등장한 이유에 대해서 살펴보았다. 이번 시간에는 실제 SBC에 Docker를 설치하여 물리 머신과 컨테이너 환경에서의 성능 차이를 알아보도록 한다. Docker 환경 성능 컨테이너가 일반 VM보다 이득이라는 점은 지난 시간에서 설명하였다. 실질적으로 컨테이너를 사용했을 때 물리머신과 성능 차이가 존재하는지, 존재한다면 얼마나 많은 차이가 나는지에 대해서 알아보도록 한다. 컨테이너는 OS 커널에서 동작하기 때문에 Linux 커널에 의존적인 관계를 가질 수 밖에수밖에 없는 구조를 가지고 있다. 띠라서 여러 Docker 환경을 구축하더라도 하나의 커널에서만 종속적인 관..
Kubernetes & Docker Part 1 쿠버네티스 기초 다지기 3/e 한정된 자원을 사용하기 위한 노력 1960년대부터 한정된 자원을 효율적으로 사용하고자 하는 시도는 계속되어 왔다. 대표적으로 가상머신이 있는데, Popek와 Goldberg가 "실제 컴퓨터의 효율적이고 고립된 복제물"로 정의되어 현재는 "실제 하드웨어와 직접적인 통신이 없는 가상 컴퓨터"를 가리킨다. 가상머신의 정의 시스템 가상 머신 하드웨어 가상 머신이라고 표현하며, 각 OS를 실행하는 가상 머신 사이의 기초가 되는 물리 PC를 다중화하는 기법을 뜻한다. 가상화를 제공하는 소프트웨어 계층은 가상 머신 모니터 또는 하이퍼 바이저라고 하며, 이를 통해 다음과 같은 이점을 얻을 수 있다. 여러 OS를 사용하는 환경은 완벽히 고립된..
인터넷 보급에 따라 우리의 일상은 과거와 다르게 엄청난 변화를 이룩하였다. 네트워크의 발전으로 위기가 발생했을 때 사람들은 집단지성의 힘으로 빠르게 위기정보를 알 수 있는 방법을 고안하고 문제를 해결할 수 있는 방안을 직접 찾아냈다. 일본 후쿠시마 원자력 발전소 사례를 살펴보면, IAEA가 인정한 체르노빌 발전사고와 같은 7등급 원자력 발전 사고이다. 이는 태평양을 포함한 지역에 고농도의 방사능이 유출되었다. 하지만 일본 정부는 정확한 방사능 데이터 공개를 하지않아 지역별 방사능 유출정보가 전무하였다. 이런 문제점을 해결하기 위해 NGO 단체 세이프캐스트(safecast)는 12cm*8cm 크기에 GPS센서와 가이거(방사능 측정기)가 내장된 가이거 카운터를 개발했다. 가이거 카운터는 차량에 부착해 운행하..
2019년 현재 Docker는 빠질 수 없는 필수적인 구성 요소가 되었다. 기존의 가상화 환경과 다르게 프로세스 격리 방식으로 동작하는 Docker의 경우 경량화는 물론 다른 Virtualizatin와 비교했을 때 빠른 Deploy가 가능하다는 여러 장점을 기존 시간에서 상세하게 설명하였다. 이번시간에서는 실제 본 연구실에서 진행했던 Docker Swarm으로 시작하는 오케스트레이션이라는 주제로 지필하고자 한다. 사실 오케스트레이션이라는 용어와 사용은 오래전부터 사용되어 있었다. 오케스트레이션이 무엇인지 살펴보고 싶다면 본 블로그에 Docker Swarms 편을 살펴보는 것을 추천한다. 현재는 거의 업계 표준이나 다름없이 사용되는 오케스트레이션 도구는 구글에서 제작한 쿠버네티스라고 할 수 있다. 하지만 ..
Ansible AWX를 활용한 서버 자동화 1 Why Ansible? Ansible은 Infrastructure as a code에 대표적인 도구로, 현재 가장많이 사용되는 서버 자동화 도구라고 할 수 있다. Ansible의 경우 기존의 Agent의 설치할 필요 없이 SSH 접속을 통해서 간편하게 운영할 수 있으며, 다양한 모듈을 제공하여 쉽고 빠르게 운영 서버에 즉각적인 배포가 가능하다는 장점이 있다. Ansible은 2012년에 출시되어 2013년 레드햇에 인수되어 현재까지 개발되고 있다. 이에 대한 자세한 소개는 지난 1편을 글을 통해 확인할 수 있으므로 본 편을 읽어보기 전에 기본 개념을 확인하고 오기를 바란다. Installation Ansible MAC OS $ brew install ansi..
GitLab Runner 500 Error 해결방법 본 연구실에서는 GitLab CE 버전이 설치되어 있는데 새로운 서버의 도입으로 인해서 마이그레이션을 진행 후에 Admin 페이지에서 GitLab Runner 페이지가 500 Error가 뜨면서 사용할 수 없는 상태에 이르렀다. 이러한 문제는 기존 키값의 충돌로 인한 문제로서 GItLab 옴니버스로 설치했을 시에 발생했다는 사실을 밝힌다. 관련문제가 흔하게 발생하는 문제가 아닌 만큼 아래와 같이 기존 GitLab Runner 키값을 삭제해 주고 키값을 재생성 한 다음에 Runner를 다시 등록해 주는 과정을 거치면 문제를 해결할 수 있다. root@gitlab:/# gitlab-rails console ----------------------------..
GItLab 백업 및 복원한밭대학교 무선통신소프트위어연구실(Wisoft) 에서는 형상관리를 git으로 관리하고 있습니다. 본 연구실에서 운영중인 서비스들은 가상화 환경으로 전환한 이후 생성된 데이터를 백업하고 관리하는 과정이 매우 중요한 과제가 되었습니다. 이러한 문제점을 해결하기 위해서 주기적이고 안정적인 백업 환경 구축, 자동화된 환경설계가 필요하게 되었습니다. 현재 운영중인 대부분의 서버들은 Ansible를 사용하여 주기적인 업데이트와 백업을 진행하고 있습니다. GitLab Backup GitLab에 대한 모든 설정은 /etc/gitlab/gitlab.rb에서 관리할 수 있습니다. gitlab.rb 파일에서 자세한 설정을 원하는 경우 다음 링크를 통해서 확인하시길 바랍니다. https://docs...
GitLab CE omnibus 설치 본 연구실은 Gitlab CE 버전을 사용하고 있습니다. 설치방법은 다양하게 존재하지만 Ubuntu 18.04.2에서 설치하는 방법을 기술하겠습니다. 설치링크는 https://about.gitlab.com/install/에서 본인의 사용환경에 맞춰서 설치하셔야 합니다. Omnibus package installation (recommended) 필요 의존성 파일 설치$ sudo apt-get update && sudo apt upgrade -y $ sudo apt-get install -y curl openssh-server ca-certificates이메일 전송을 위한 package 설치$ sudo apt install postfix -y 본 패키지 설치시 기본설정..
Docker Postgresql 설치 및 셋팅하기 자세한 버전으로 수정되어 링크가 이동되었습니다. 본 포스팅을 찾아주셔서 감사합니다. 다음 포스팅으로 이동하셔서 확인하시길 바랍니다. https://judo0179.tistory.com/96 본 문서는 Docker를 사용하여 Postgresql을 설치하고 셋팅하는 방법을 설명하고 있습니다. Linux, Mac OS에서 사용할 것을 권장합니다. 다음 링크에서 공식 postgres Docker 이미지를 다운로드 받습니다.https://hub.docker.com/_/postgresdocker-compose.yml를 활용해서 데이터베이스를 셋팅하고자 하는 경우 다음 링크를 참조하세요https://judo0179.tistory.com/69?category=28195..