Windows7 가 설치된 개인 PC 에 CoreOS 와 Docker 를 설치하여, 가상으로 cluster 환경을 구축하는 방법입니다. 여기서는 virtual box 에 CoreOS 운영체제를 설치한 host machine 3 대를 구축하는 방법을 포스팅 하였습니다. 다음 페이지에서는 Docker 컨테이너에 Web server 기능을 하는 간단한 Python 스크립트를 실행하는 방법을 다룹니다.
Virtual box 를 설치합니다.
다운로드 : https://www.virtualbox.org/wiki/Downloads
Virtual box 는 가상머신을 구동할 수 있게 하는 소프트웨어입니다. 이 Virtual box 에 3대의 host machine 을 구축할 것입니다. 각 machine 에는 CoreOS 운영체제가 설치됩니다.
Vagrant 를 설치합니다.
다운로드 : https://www.vagrantup.com/downloads.html
3대의 가상머신을 손쉽게 관리하기 위하여, Vagrant 를 설치합니다.
git bash 를 설치합니다.
다운로드 : http://git-scm.com/downloads
앞으로의 작업은 git bash 상에서 진행됩니다.
Virtual Box 에 3대의 가상머신을 구동합니다.
참고자료 :
Clustering CoreOS with Vagrant
Git bash 를 열면 윈도우즈 상에서 리눅스 명령어를 사용할 수 있는 콘솔이 열립니다.콘솔에 아래 내용을 입력합니다. 참고로, git bash 상에서 붙여넣기 단축키는 ctrl+V 가 아닌 insert 버튼을 이용합니다.
git clone https://github.com/coreos/coreos-vagrant.git
방금 생성한 coreos-vagrant.git 폴더로 이동합니다.
cd coreos-vagrant
config.rb.sample 파일과 user-data.sample 의 이름을 각각 config.rb, user-data 로 수정합니다. 이 파일들에는 구축할 cluster 의 설정 정보가 담기게 됩니다.
mv config.rb.sample config.rb
mv user-data.sample user-data
이제 config.rb 를 수정하겠습니다. 현재 $num_instances, $update_channel 는 #으로 주석 처리 되어 있습니다. #를 지워 주석처리를 취소하고, 각각을 아래와 같이 수정합니다.
$num_instances=3
$update_channel='alpha'
현재 각 가상머신의 메모리는 1024 MB 로 설정되어 있습니다. 만약 PC 의 메모리가 부족할 것 같다면 $vb_memory 값을 512로 낮추는 것도 가능합니다.
$vb_memory = 512
이제, alpha 업데이트 채널을 갖고 메모리가 512MB 인 가상머신 3대를 생성하도록 설정되었습니다.
다음은 user-data 파일을 수정할 차례입니다. 이 상태로 가상머신을 구동하게 되면 3대의 가상머신은 서로 연관 없이 구동됩니다. 3대의 가상머신을 하나의 cluster 로 연결하기 위해, 각 머신이 동일한 token 을 갖도록 합니다. 각 머신은 자신과 동일한 token 을 가진 다른 머신을 peer 로 인식하여 같은 cluster 를 형성하게 됩니다. 이 token 은 아래 명령어로 얻을 수 있습니다.
curl https://discovery.etcd.io/new
생성된 token 을 user-data 파일에 있는 <token> 자리에 입력하고, discovery 의 주석 체크를 해제합니다.
discovery: https://discovery.etcd.io/
설정이 완료되었습니다. Vagrant 가 3대의 가상머신을 Virtual Box 에 올리도록 명령합니다.
vagrant up
아래는 3대의 가상머신이 성공적으로 부팅된 화면입니다.
3대의 가상머신이 서로를 인식하여 하나의 cluster 를 구축하고 있는지 체크해 봅시다.
vagrant ssh 명령어를 통해 cluster 에 접속합니다.
vagrant ssh core-01 -- -A
시스템 내의 머신 목록을 확인해 봅시다.
fleetctl list-machines
3대의 가상머신이 성공적으로 하나의 cluster 를 구성하고 있는 것을 확인할 수 있습니다.
5. 명령어 사용
이제 cluster 상에서 fleet, etcd, docker 관련 명령어를 사용할 수 있습니다.
etcdctl
etcd 관련 명령어를 보여 줍니다.
etcd 는 각 머신을 연결해 주는 통로 역할을 합니다.
참고 : Getting Started with etcd
fleetctl
fleet 관련 명령어를 보여 줍니다.
fleet 은 cluster 내의 머신들을 묶어, 단일 시스템을 구성하도록 합니다.
참고 : Cluster Management
Launching Containers with fleet
docker
docker 관련 명령어를 보여 줍니다.
이어서 다음 페이지에서는 docker 를 이용하여 간단한 Web server 를 구축하는 방법을 다룹니다.
저는 vagrant up 명령이 정상적으로 수행되지 않고, Booting VM... 상태에서 멈추는 경우가 자주 발생하였습니다.
작업관리자에서 VBoxHeadless, VBoxManage, VBoxSVC 프로세스를 강제종료 하고 나서 다시 vagrant up 을 실행하면 같은 조건인데도 제대로 되곤 하더군요. Virtual box 오류인 듯 합니다. 이전 버전에서는 "Waiting for machin to boot" 상태에서 멈추는 경우도 있었다고 하네요. 원인은 찾지 못했습니다. 같은 현상이 반복될 경우 VirtualBox 와 vagrant 를 재설치하고 관련 파일을 모두 삭제하면 해결됩니다.
'프로그래밍' 카테고리의 다른 글
[JS & jQuery] 커서를 input box 의 맨 뒤에 위치시키기 (0) | 2015.02.08 |
---|---|
[CoreOS][Docker] Windows PC 에 CoreOS, Docker 설치하기 2 (0) | 2014.11.10 |
[Google Chrome] 크롬 URL 에 사이트의 주소가 모두 나타나도록 수정하기 (4) | 2014.08.16 |
[Play framework] Depencency proplem (0) | 2014.07.25 |
[IIS] HTTP Error 401.3 - Unauthorized (0) | 2014.07.10 |