เนื่องจากร้อนวิชาจากเมื่อวานที่ไปเรียน Docker swarm มาแต่ขัดใจหน่อยๆตรงที่ docker-machine มันมี driver มาตรฐานมาให้แค่ไม่กี่ตัว ที่ได้มีโอกาสใช้ก็คงมี aws,digitalocean,generic,virtualbox,azure,openstack พวก vmware คงไม่ได้มีโอกาสใช้สักเท่าไรเพราะ vmware ของที่ทำงานที่มีให้ส่วนมากจะเป็นแบบให้ vm มาเลยไม่ได้ให้เรา create vm เองได้
ผมได้รู้จัก VULTR มาพักใหญ่ละแต่ไม่ได้ใช้เพราะเสียดายวันฟรีของมันมันให้ใช้ฟรีได้ 2 เดือนใน 2 เดือนนี้ใช้อะไรก็ได้ในระบบโดยมีเงินให้ใช้ได้ 50$ ระบบแจกฟรีจะคล้ายๆ azure กับ bluemix คือให้ฟรีเงินมาเยอะๆแต่จำกัดวันใช้สั้นๆ ไม่เหมือน digital ocean ที่ให้เงินมาในระบบแล้ว คุณจะใช้ตอนไหนก็ได้ปิดเครื่อง+ทำลาย ไปเงินก็ไม่คิดเก็บไว้ใช้ได้นานๆ
VULTR มีอะไรดีกว่า Digitalocean บ้าง
- disk ใช้ SSD เหมือน Digitalocean แต่ performance ดีกว่ามาก
- ที่ราคา 5$ เท่ากัน VULTR ให้แรม 768MB แต่ให้ disk 15GB (disk น้อยกว่าแค่ 5 GB ผมว่าไม่เป็นปัญหาสำหรับ plan ราคาถูกนะครับอยากได้ performance ของ CPU & RAM มากกว่า)
- มี local instant สำหรับทำ storage ใช้ disk จานหมุนธรรมดา ราคา 5$ ได้ disk ถึง 125 GB
- มี Snapshot ให้ใช้ Free!!!!!! (คิดว่าเดี๋ยวคงเก็บตัง)
- ติดตั้ง OS จาก iso ของเราเองได้
- มี DDOS protection ( เสียเงินเพิ่ม 10$ ต่อเดือน)
- มี Dedicated instant ให้เลือก (2CPU 8GB-MEM 120GB-SSD 60$ ต่อเดือน)
- มีเครดิตฟรีให้เล่น 50$ สมัครตาม https://www.vultr.com/freetrial/ นี้เลย หรือใครจะใจดีให้ referer ผมก็สมัครจาก link นี้ครับ http://www.vultr.com/?ref=6872558
VULTR ด้อยกว่า Digitalocean ตรงไหนบ้าง
- เท่าที่เห็นตอนนี้ zone SEA ไม่มี server วางให้เลย ใกล้สุดคือ Japan และ Australia จากการทดสอบ ping โดยใช้ internet 3BB 10Mb ที่บ้าน ping ได้ผลดังนี้
- digitalocean(SG) =50.210 ms
- Vultr(JP) = 125.782 ms
- Vultr(AU)=151.916 ms
จริงๆตอนแรกว่าจะเขียน driver vultr ให้กับ docker-machine เองไป hack มาละว่าเขียนไงไปหา go lib สำหรับ vultr มาแล้วด้วย https://github.com/JamesClonk/vultr/tree/master/lib กะว่าตื่นเช้ามาค่อยเอามาเขียน ก่อนนอนเล่นไปเล่นมา search ไปเจอมีคนทำ driver ไว้เสร็จเรียบร้อยแล้ว ใช้ lib ตัวเดียวกันกับที่ว่าจะเอามาเขียนเลย https://github.com/janeczku/docker-machine-vultr สรุปง่ายเลยไม่ต้องเขียนเองละเอามาใช้เลย
วิธีการติดตั้ง docker-machine-vultr driver
- ติดตั้ง docker , docker-machine ,golang
- git clone https://github.com/janeczku/docker-machine-vultr.git
- cd docker-machine-vultr && go get && make
- cp build/docker-machine-vultr* /usr/local/bin/docker-machine-vultr
วิธีสร้าง consul
- login เข้าไปใน VULTR เข้าไปที่ menu settings->API เพื่อ copy API key
- docker-machine create -d vultr --vultr-api-key=[Your API] --vultr-os-id=193 --vultr-region-id=25 --vultr-plan-id=31 consul
- vultr-os-id 193 = debian 8 x64
- vultr-region-id 25 = jp
- vultr-plan-id 31 = 5$ บน region jp
- eval "$(docker-machine env consul)"
- docker run -d --net=host --name=consul progrium/consul:latest -server -bootstrap-expect 1 -ui-dir /ui
วิธีสร้าง master
- docker-machine create -d vultr --vultr-api-key=[Your API] --vultr-os-id=193 --vultr-region-id=25 --vultr-plan-id=31 --engine-opt cluster-store=consul://$(docker-machine ip consul):8500 --engine-opt cluster-advertise=eth0:2376 --swarm --swarm-master --swarm-discovery consul://$(docker-machine ip consul):8500/discovery master
- eval $(docker-machine env --swarm master)
- docker info
วิธีสร้าง node
- docker-machine create -d vultr --vultr-api-key=[Your API] --vultr-os-id=193 --vultr-region-id=25 --vultr-plan-id=31 --engine-opt cluster-store=consul://$(docker-machine ip consul):8500 --engine-opt cluster-advertise=eth0:2376 --swarm --swarm-discovery consul://$(docker-machine ip consul):8500/discovery node-1
- docker network create --driver overlay multihost
- docker run -d --name=box1 --net=multihost nginx
- docker run -d --name=box2 --net=multihost nginx
- docker run -d --name=box3 --net=multihost nginx
- docker ps
- จะสังเกตว่า box1,box2 อยู่เครื่องเดียวกันส่วน box3 อยู่อีก เครื่องหนึ่ง (การเลือกเครื่องที่ติดตั้ง swarm จะเลือกให้เอง)
- ทดสอบเข้าไปใน box1 แล้วลอง ping box2,box3 และ google ดู
ส่วนเรื่องความเร็วในการทำ provisioning นั้น อยู่ที่ประมาณ 3:30 นาทีโดยประมาณ
เรื่องความเร็วในการทำ provisioning อาจจะเป็นรอง digitalocean แต่สำหรับตอนนี้ใครที่อยากลองเล่น swarm ลองมาสมัคร VULTR ที่ให้เล่นฟรีแบบ 50$ 2 เดือนดู สามารถ create เครื่องขึ้นมาเล่นๆได้เป็น ร้อยๆเครื่องโดยไม่เสียเงินสักบาท ส่วนเรื่อง performance ของเครื่องลองไปทดสอบกันดูครับว่าที่ผม review มานั้นจริงไหม