Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Rancher Server에는 웹 Admin이 포함되어 있으며 ( 이후 Rancher UI라고 부르겠습니다.)

RancherUI에서는 RancherAgent를 통해 원격에 있는 VM에게 도커 제어를 할수가 있습니다.



1PC에 VM3을 띄워서 네트워크로 분리되어 있는 도커를 활용예정입니다.

...

도커 구동을 위한 VM 환경

파일구조

/docker1/Vagrantfile     - 192.168.56.201

/docker2/Vagrantfile     - 192.168.56.202

/docker3/Vagrantfile     - 192.168.56.203

복수개의 도커를 위한 VM을 위해 위와같은 구조로 File을 생성합니다. 각각의 VM은 가상의 Private 네트워크를 사용하게 될것입니다.

그리고 자신의 PC환경에는 도커와 관련된 어떠한 툴 설치없이 오로지 VM내부에서만 진행될 예정입니다.

구동파일

Code Block
titleVagrantfile
Vagrant.configure("2") do |config|
  config.vbguest.auto_update = false
  config.vm.box = "kleesc/coreos"
  config.vm.hostname = "docker1"
  config.vm.network "private_network", ip: "192.168.56.201"
  config.vm.provider "virtualbox" do |vb|
     vb.memory = "2048"
  end
end

도커구동을 위해한, 라이트하고 가벼운  최소 스펙의 리눅스 OS인 coreos 를 선택하였으며

os자체가 도커를 포함하고 있어서, 구동과 동시에 도커가 준비된 상태가 됩니다.

3개의 VM을 구동예정이며, 다르게 설정되어야 할값은 단지 메모리/호스트명/네트워크IP지정입니다.

단 9줄이면 , 네트워크 구성을 사용한 도커를위한 VM이 준비가 됩니다. 

간단하게 살펴본 크기순서 디펜던시입니다.

  • Host(물리컴퓨터) > 물리 OS > VM > VMOS > 도커가상화 > 도커 컨테이너
  • Host(물리컴퓨터) > 도커 가상화 > 도커 컨테이너

도커 가상화를 위해 VM이 꼭 필요한것은 아니지만, 여기서는 첫번째 방법으로 연습이진행됩니다.(적어도 여러 EC2를 사용한다고 가정)

...

title다른OS의 Docker가필요한경우

다른 조합의 OS+Docker가 필요한경우 : https://app.vagrantup.com/boxes/search

...

OS의 Size는 곧 비용이다.  Core OS는 도커 가상화기술을 사용할수 있는 최적화된 경량화된 OS이다.   

...

core os 가 도커환경에서 유용한경우

도커를 위해 cent os / ubuntu 등을 선택해도 되지만 , 도커의 스펙만 이용한다고 하면 core os로도 충분합니다.

우선 최소 설치 용량이 가벼우며(전체 OS를 처음 다운받고 최초 도커환경을 준비하는데 5분이면 충분합니다.)

Vagrant가 아닌, VM에서 OS를 직접선택하고 도커환경을 위해 OS-Updateg하고 네트워크 셋팅을 다거치고 나서 도커 설치까지 걸리는 시간대비

여기서 학습하고자하는  방식을 사용하면 이미 도커 3개를 스케일아웃할수 있는 구조와 함께 웹에서 어떤 인프라를 선택할지 원클릭 설치를 할수 있는 환경이 제공됩니다.

( 클라우드에 비용을 지불하고 원클릭으로 인스턴스 생성이 가장 빠를것이지만, Rancher구동이후에는 적어도 클라우드 환경을 이용하는 수준으로 빠른 서비스 스택 구축이 가능합니다.)

VM만을 이용한 처음설치를 위해  우분투를 선택했다고 하면,OS를 내려받는 과정을 포함하여 최신 도커사용을 위해 update및 디펀던시 준비하는데 이미 1시간 이상을 소요했을것입니다. -숙련자기준

비숙련자 기준으로는 네트워크 환경 셋팅은 고려하지도 못한체 하루이상 소요될수도 있습니다.

인프라 환경 셋팅에서 숙련과 비숙련의 차이는 단연코 시간입니다.

파일을 위와같이 작성을 한후, Vagrantfile을 가지고 있는 디렉토리내에서 VM 컨트롤이 가능합니다.

주요 명령 요약

...


Rancher Server(UI)설치

docker1 디렉토리에서 Rancher Server를 직접 설치를 할것입니다.

...

http://192.168.56.201:8080 에 접근하여 소를 볼수 있으면 란쳐 설치 성공입니다.


Rancher 계정 설정


최초 설치를 하면 계정없이 모든권한이 부여된 상태로 시작하며, Admin → AccessControl 을 통해 Rancher를 이용할수 있는 권한 설정을 할수가 있습니다.

여러가지 Auth와 연동을 통한 SSO(Single Sign On)을 이용할수 있으며, 여기서는 LOCAL을 지정하고 직접 Admin 계정을 생성하겠습니다.



최초 인프라설치

Rancher UI에서 INFRASTRUCTURE 메뉴탭에 가면 인프라가 최초에는 비어 있습니다.

...

  • 라벨링을 하는 이유 : 관리해야할 호스트가 많아지면, 나중에 서버의 역활과 롤이 애매해집니다. 이미 구성이 된 서버에 롤을 바꾸기는 쉽지 않습니다.  처음부터 네이밍을 잘하여 목적에 맞는 구동가능하며, 오토 스케일링 이용시 특정조건의 라벨링을 이용할수 있습니다.
  • IP를 지정하는 이유 : 서버가 일반적으로 IP를 자동감지하여 Agent IP를 알수 있습니다. 하지만 Nat의 영향등으로 접근하지 못하는 IP가 감지될수 있음으로 서버가 Agent를 감지하거나 방화벽 정책상 접근할수있는 내부 IP를 명시를 해줍니다. 


Agent설치

필요한 옵션을 지정하면, 도커컨테이너를 통한 설치명령을 제공해 줍니다. 명령을 복사하여 해당 VM ( docker1) 에서 실행을 하면 1분 이내에 설치가 완료됩니다.

...