ครั้งที่แล้วได้ทดลองใช้งาน Docker Swarm ไปบ้างแล้ว ครั้งนี้มาลองดูวิธีการใช้แบบอื่นๆ บ้าง หากคุณยังไม่ได้ติดตั้ง Swarm และผูก Docker Cluster ไว้ให้ตามอ่านเนื้อหาในครั้งก่อน เมื่อผูก cluster เรียบร้อยแล้ว มีทางเลือกในการใช้งานกับ cluster 2 แบบ คือ ใช้งานผ่าน swarm โดยใช้ docker แบบปกติ ใช้งานผ่าน swarm โดยใช้ docker-compose การใช้งาน 2 วิธีนี้สามารถใช้งานร่วมกันได้ หากคุณใช้ docker แบบปกติสั่ง run container คุณสามารถกำหนด constraint หรือ affinity ร่วมด้วยได้ เช่น ต้องการใช้ compose ช่วยในการ deploy web หรือ scale web ก็สามารถทำได้

ครั้งที่แล้วได้แนะนำการใช้งาน Docker Machine ไปหลายครั้งบน Public Cloud หลายค่าย เช่น Azure, Rackspace, DigitalOcean เป็นต้น แนะนำการผูก Docker Cluster โดนใช้ Docker Swarm และใช้งาน Service Orchestration โดยใช้ Docker Composer กันไปแล้ว ครั้งนี้จะมาแนะนำการใช้งานร่วมกันทั้ง 3 Service เริ่มจากสร้าง Cluster และ Swarm Master บน DigitalOcean docker run swarm create

ครั้งที่แล้วพาเล่น Docker Machine ทั่งบน Digital Ocean, Azure และ Rackspace ครั้งนี้จะมาแนะนำ Docker Swarm ตัว Docker Swarm ทำหน้าที่คล้ายกับ etcd ใน CoreOS เพื่อใช้ในการผูก Cluster โดยใช้ Service เป็นหลัก ซึ่ง Docker Hub จะให้บริการ service discovery ให้ ซึ่งผู้ใช้สามารถเรียกใช้ Swarm ได้ผ่าน Docker Image หรือใช้งานร่วมกับ Docker Machine ได้เช่นเดียวกัน 8ครั้งนี้เราจะใช้ Machine กับ Digital Ocean ติดตั้งเครื่องมือที่ต้องใช้กันก่อน ติดตั้ง Docker Machine ดังนี้ wget https://github.com/docker/machine/releases/download/v0.1.0/docker-machine_linux-amd64 -O /usr/local/bin/docker-machine จากนั้นขอ… Continue reading

Image Layers เป็นบริการของ CenturyLink ช่วยให้คุณสามารถดูโครงสร้างของ Docker Image ได้ง่ายๆ จาก Docker Hub หรือการอัพโหลด Image ขึ้นไปตรวจสอบ การแสดงผลจะอยู่ในรูปแบบของ Graph แสดงข้อมูล Image แต่ละ Layer ขนาดที่ใช้ในแต่ละ Layer ด้วย นอกจากนี้ยังแสดงคำสั่งต่างๆ ใน Dockerfile อีกด้วย วิธีการใช้งานก็ง่ายมากๆ เข้าไปที่เว็บไซต์ imagelayers.io จากนั้นกำหนด Docker Image ที่ตรงการดู ตัวอย่างผมอยากดู Image ชื่อ ibuildthecloud/jenkins-swarm

ครั้งที่แล้วพาเล่น HA MQTT Broker ด้วย Docker Compose ครั้งนี้มาแนะนำวิธีการ Reconfig HAProxy ในกรณีที่มีการ Scale In, Scale Out จากการใช้ Docker Compose Scale ขอเปลี่ยนตัวอย่างเป็น WebApp จะได้เข้าใจง่ายๆ WebApp ตัวนี้ expose port 8080 เราสามารถใช้ Interlock ช่วยในการ reconfig HAProxy ในกรณีที่มีการ Scale ไม่ว่าจะ Scale in หรือ Scale out ได้ ครั้งนี้เราจะใช้ Docker Machine, Docke Swarm, Docker Compose และ Interlock มาลงมือติดตั้ง Docker กันก่อน wget -qO-… Continue reading

หากคุณใช้งาน Docker อยู่จะทราบว่าเราสามารถใช้ Docker CLI ในการควบคุมเครื่อง Docker Host ที่อยู่อีกเครื่องหนึ่งได้ ผ่านการกำหนดผ่าน ENV ชื่อ DOCKER_HOST ถ้าต้องการใช้เครื่องไหน ก็ต้องเปลี่ยนทุกครั้ง ถ้าคุณใช้ Docker Machine แล้วมีเครื่องอยู่หลายตัว Deploy อยู่บน Cloud Provider หลายค่าย แล้วจำ IP Address และ Port ไม่ได้ก็ยิ่งสร้างความลำบากให้กับชีวิตมากขึ้น วิธีการง่ายๆ ในการเปลี่ยนเครื่องที่อยากจะใช้งานให้ได้อย่างรวดเร็วมี 2 ทางเลือก ใช้ Swarm ใช้ ENV ของ Docker Machine Docker Machine มี option ชื่อ env เราสามารถใช้ความสามารถนี้กำหนด ENV ให้กับ Docker CLI ได้ ตอนนี้เรามีเครื่องอยู่ 5… Continue reading

หลังจากที่รอมานาน Docker 1.5 ก็มีเครื่องมือเกี่ยวกับ Stats มาให้ หลังจากที่หันไปใช้ cAdvisor พักใหญ่ ในรุ่น 1.5 นี้ยังไม่มีเครื่องมืออย่างเช่น swarm, machine และ composer เข้ามาด้วย สำหรับท่านที่เป็น DevOps ก็ใช้เครื่องมือเดิมกันต่อไป :) มาดู Docker Stats กันก่อน เครื่องมือ Stats ที่ให้มาก็ธรรมดามากๆ สามารถเรียกดูข้อมูลการใช้ทรัพยากรของ Container ได้ทั้ง CPU, Memory, Network ซึ่งเพียงพอต่อการใช้งาน Stats สามารถใช้งานได้ผ่าน Docker CLI และผ่าน API สำหรับท่านที่ใช้ Docker รุ่นเก่า อัพเกรด Docker 1.5 กันก่อนโดยติดตั้ง package lxc-docker-1.5.0 ดังนี้ sudo apt-get install lxc-docker-1.5.0… Continue reading

Rancher Compose เป็น Orchestration Tool คล้ายกับ Docker Compose แต่การทำงานจะเป็นการเชื่อมต่อกับ Racher ไม่ได้เชื่อมต่อกับ Swarm ดังนั้นการใช้งาน Rancher Compose จะต้องใช้คู่กับ Rancher ด้วย Rancher Compose จะใช้ไฟล์ config อยู่ 2 ไฟล์คือ docker-compose.yml สำหรับกำหนด stack ที่ต้องการ deploy และ rancher-compose.yml สำหรับกำหนดค่า Load Balance หรือการ Scale หากใช้ไฟล์ docker-compose.yml อย่างเดียว Rancher จะไปสร้าง config rancher-compose ให้ พร้อมกำหนดจำนวน Scale เท่ากับ 1 ไว้ ดังนั้นในแต่ละ Service สามารถสั่ง Scale ได้โดยอัตโนมัติ… Continue reading

เนื่องจากจำไม่ได้ว่าใครถามเรื่อง High Availability MQTT Cluster แต่ที่จำได้ผมบอกไปว่า Mosca + Haproxy น่าจะจบก็ไม่ได้ทำอะไรต่อเพราะน่าจะเข้าใจแล้ว แต่ก็คิดไปคิดมาก็เลยลองดูสักหน่อยว่าใช้ได้หรือเปล่า T_T จาก Blog ของ Lelylan อธิบายเรื่อง High Availability MQTT Cluster ไว้ได้ดีในเรื่องของการประยุกต์ใช้ Docker และ MQTT Broker ซึ่งถือว่าเป็น Micro Service ถ้าสนใจก็ลองไปอ่านได้ครับ กลับมา Back to Basic เราจะไม่ใช้ Docker เพื่อให้เกิดความเข้าใจเรื่อง HA กับ MQTT Broker ในเบื้องต้นก่อนครั้งหน้า (ถ้าไม่ลืม) เราจะมาเล่น Docker Machine + Swarm + Compose ทำ High Availability MQTT Cluster… Continue reading