Docker Swarm คืออะไร

3 Oct 2016

Share to:

Docker swarm เป็น Native Clustering ของ Docker คือเป็นเครื่องมือช่วยจัดการเครื่อง server ที่รัน Docker หลายๆเครื่องให้อยู่ในสภาพแวดล้อมเดียวกัน พูดง่ายๆก็คือ การนําเอาเครื่อง server หลายๆเครื่อง (Worker) มาช่วยกันทํางาน โดยจะถูกควบคุมการทํางานโดย Manager และยังมีระบบ IPVS ที่เป็น Load-balance ซึ่งจะทําให้เราสามารถเข้าถึง Website หรือ Application ต่างๆ ที่เรารันอยู่ได้จากเครื่องไหนก็ได้ใน Swarm โดย IPVS จะช่วยจัดการให้เราเองโดยอัตโนมัติ ศัพท์ที่เกี่ยวกับ Docker swarm ที่ควรรู้มีดังนี้

  • **Manager **คือ เครื่อง Server ที่ทําหน้าที่เป็นตัวกลางที่คอยควบคุมให้ เครื่อง Server ที่รัน Docker เครื่องอื่นๆทํางานร่วมกันได้ และเป็นตัวกระจายงานให้กับ เครื่องอื่นๆ Manager สามารถมีได้หลายเครื่อง (แนะนําให้มีเป็นเลขคี่)
  • Worker คือ เครื่อง server ที่จะคอยรับงานจาก Manager
  • Service คือ Application ที่เราต้องการให้ทํางาน โดยภายในจะถูกแบ่งเป็น task (อาจจะเรียกว่า Container ก็ได้) ตามจํานวนที่เรากําหนด
  • Task คือ พูดง่ายๆก็คือ Container นั่นแหละครับ Task นี้จะถูกกระจายไปยัง Worker แต่ละเครื่อง

โครงสร้างของ Swarm Mode

Image

จากรูปจะเห็นว่า Manager จะเป็นตัวจัดการ และกระจายงานต่างๆไปให้กับ Worker ทํางาน โดยปกติแล้ว Manager ควรมีมากกว่า 1 เครื่อง และควรมีเป็นจํานวนเลขคี่ เหตุผลก็คือ เมื่อ Manager เครื่องใดเครื่องหนึ่งเกิดปัญหาขึ้นมา Manager เครื่องอื่นจะขึ้นมาทํางานแทนทันที เราสามารถกําหนดให้ Manager ทําหน้าที่กระจายงานอย่างเดียว หรือทั้งกระจายงานและ ร่วมทํางานด้วยก็ได้ ถ้าในกรณีที่ Worker เครื่องใดหยุดทํางาน Manager จะย้าย Task ของเครื่องที่หยุดทํางาน ไปกระจายให้กับ Worker เครื่องอื่นๆโดยอัตโนมัติ มีการยืนยันตัวตน, กำหนดสิทธิ์ และเข้ารหัส Traffic ที่มีการพูดคุยกันระหว่าง Node ภายใน Swarm พร้อมระบบจัดการ TLS Certificate ภายในตัว

Image

Docker swarm เหมาะกับงานไหน?

เนื่องจากคุณสมบัติของ Docker swarm ทําให้เราสามารถ Scale และ Load-balance service ได้ง่ายๆ จึงเหมาะกับงานที่ต้องการ Scale ระบบ ยกตัวอย่างเช่น ระบบลงทะเบียนนักศึกษา ซึ่งในช่วงลงทะเบียน จะมีนักศึกษาเข้าใช้งานพร้อมกันจํานวนมากทําให้ต้อง Scale ระบบเพื่อให้รองรับจํานวนนักศึกษาที่เข้าใช้งาน Docker swarm จึงช่วยให้การ Scale ระบบเป็นเรื่องง่ายและรวดเร็ว

Image

วิธีใช้งาน Docker swarm แบบคร่าวๆ

ในบนความนี้ผมจะอธิบาย step การใช้งานในแบบคร่าวๆนะครับ เพื่อให้เห็นภาพโดยรวมทั้งระบบก่อน และในบทความหน้าผมจะทดลองใช้งาน Docker swarm กันจริงๆให้ดูครับ การใช้งานจะเริ่มต้นด้วยกําหนดเครื่อง Manager เมื่อเรากําหนดเครื่องใดเครื่องหนึ่งเป็น manager แล้ว เราจะได้ token มาสองอันดังนี้

  • Manager token เป็น token สําหรับให้เครื่องอื่นมา join ใน swarm เพื่อทําหน้าที่เป็น Manager
  • Worker token เป็น token สําหรับให้เครื่องอื่นมา join ใน swarm เพื่อทําหน้าที่เป็น Worker

เราจะนํา server ที่รัน docker เครื่องอื่นๆ เค้าไป join โดยใช้ token และ ip ของเครื่อง Manager ที่เรากําหนดไว้ตอนต้น เมื่อเรานําเครื่องมา join กันเรียบร้อยแล้ว ขั้นตอนต่อไปคือต้อง create service เพื่อสั่งให้ Docker swarm ทํางาน Application ตามที่เราต้องการ และเรายังสามารถ Scale เพิ่ม-ลดจํานวน task (Container) ได้ตามต้องการ ตอนต่อไปเรื่อง เริ่มต้นใช้ Docker Swarm

Suggestion blogs

Access raspberry pi ผ่าน internet โดยไม่ต้อง forward port

สวัสดีครับ หลายๆคนอาจเจอปัญหานี้ อยากจะ ssh ไปยัง raspberry pi ผ่าน internet จากที่ใดๆก็ได้บนโลก แต่ติดปัญหาคือ คุณอาจจะอยู่ หอพัก อพาร์ทเม้นท์ ฯลฯ ที่คุณไม่สามารถเข้าไปยุ่งกับ rounter ได้ ไม่สามารถ forward port ได้ ทําให้ไม่สามารถ Access raspberry pi ได้ ในบทความนี้มีคําตอบครับ พระเอกของงานนี้คือ weaved ซึ่งจะช่วยจักการการเชื่อมต่อให้เราเองเพียงแค่ติดตั้ง service บน raspberry pi ของเราเท่านั้น

โครงสร้างของภาษาซี

โครงสร้างของภาษาซี มีดังนี้#include <stdio.h> main(){ ... }โครงสร้างของภาษาซี จะประกอบไปด้วย 3 ส่วนหลักๆ คือ

Touchscreen calibration raspberry pi

วิธี calibration จอ touchscreen raspberry piในบทความนี้ จะอธิบายเกี่ยวกับการ calibration จอ touchscreen ของ raspberry pi โดยจอ touchscreen ที่ใช้คือ Raspberry Pi 7" Touchscreen Display มาเริ่มกันเลยครับ


Copyright © 2019 - 2024 thiti.dev |  v1.34.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Youtube channel   Telegram   Email contact   วงแหวนเว็บ