Docker Swarm คืออะไร

3 Oct 2016,
Share: 

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

ESP8266 ควบคุม i/o ผ่าน web (Access point)

ในบทความนี้ผมจะอธิบายถึงวิธีการทําให้ ESP8266 เป็น Access point ให้อุปกรณ์อุปกรณ์อื่นๆ ที่เชื่อมต่อ wifi ได้ เช่น computer, smart phone ฯลฯ มาเชื่อมต่อกับ SEP8266 แล้วควบคุม i/o ปิด/เปิด LED ผ่านเว็บ ด้วยวิธีส่งข้อมูลผ่าน HTTP_GET เช่น

Review ไฟฉาย Olight sMini limited edition

ไฟฉาย Olight sMini limited edition เป็นรุ่นที่มีขนาดเล็ก ใส่แบตเตอรี่ CR123 ยาวเพียง 5.45 ซม มาดูคุณสมบัติกันครับ

Docker คืออะไร

Docker เป็น engine ที่รันบน Linux ตัวนึงที่จะจําลองสภาพแวดล้อมของเครื่อง server ขึ้นมา คล้ายๆกับพวก VirtualBox, VMWare หรือ Virtual Machine ซึ่ง Docker จะแตกต่างจาก VM ตัวอื่นๆคือ **จะทําการจําลองสภาพแวดล้อมของ server ขึ้นมาบน OS เดิม **แต่ VM อื่นๆ จะจําลองระบบขึ้นมาทั้ง OS เลย ดังรูป


Copyright © 2019 - 2025 thiti.dev |  v1.51.0 |  Privacy policy | 

Build with ❤️ and Astro.

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