แสดงบทความที่มีป้ายกำกับ vultr แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ vultr แสดงบทความทั้งหมด

วันเสาร์ที่ 23 กรกฎาคม พ.ศ. 2559

docker swarm2k with Chanwit

Yesterday I just join in awesome activity it is "swarm2k"
this activity focus on try to create docker swarm more than 2000 node and try to run service on it (in this activity +Chanwit Kaewkasi try to run 100k app

Let start

This activity have github project at https://github.com/swarm2k/swarm2k and follow this instruction https://github.com/swarm2k/swarm2k/blob/master/INSTRUCTIONS.md

I start create my machine with docker-machine in my Vultr account



but before use docker-machine with Vultr you must install Vultr driver

After that I start to create my machine on Vultr with docker-machine command
but from instruction we must use docker dev version then we must use option --engine-install-url "https://experimental.docker.com/" for fix version of docker


Option --vultr-api-key= --vultr-os-id= --vultr-region-id= --vultr-plan-id= you can find with Vultr API
https://www.vultr.com/api/

Now time to join swarm cluster


I'm very lucky after I finish setup my node +Chanwit Kaewkasi just start to deploy service on Cluster



Few minute after deploy service every node on cluster start app at my node start 41 container/node
and then data collector for Grafana die

and response after run cluster checking take about 12 sec


Cluster can't reach 100k app it running at 94k and start to have failed it try hard to make 100k but it can't pass 97k


This activity very fun have many ppl join all around the world I'm very happy to be a part of awesome activity Next time I will join again

วันจันทร์ที่ 8 กุมภาพันธ์ พ.ศ. 2559

Docker-machine create swarm on VULTR

เนื่องจากร้อนวิชาจากเมื่อวานที่ไปเรียน 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 info

  • 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 มานั้นจริงไหม