Kubernetes GlusterFS

Peeradis Sanguantrakul
Arcadia Software Development
2 min readJan 6, 2020

ตัวที่น่าปวดหัวที่สุดที่เคยใช้มา ไม่ใช่ตัวที่ดีที่สุด แต่เป็นตัวที่มีประสบการณ์ใช้งาน GlusterFS เป็น File Storage System ตัวนึงที่สามารถทำ Dynamic Mount ให้กับ Pod ของเราที่ต้องการ Persistence Data ได้ คือ…. ถ้าไม่ใช้ตัวนี้ สมัยที่ผมทำหรือศึกษา ก็ต้องไปใช้ Cloud Storage เลยน่ะครับ ก็เลยไปศึกษาและหาวิธีใช้จนได้ สำหรับบทความนี้ จะไม่สอนวิธีลงหรือใช้งานนะครับ จะอธิบายเฉย ๆ ว่าทำไมต้องมี และไปใช้ตัวอื่นที่ สเถียรกว่าดีกว่าครับ (เหมือน ๆ จะชื่อ CEPH อะไรสักอย่าง ถ้าผมมีเวลาจะไปศึกษาเพิ่มเติม (คือ เพิ่งมีพี่มาแนะนำอีกทีตอนขึ้นทุกอย่าง Production หมดแล้ว T-T )) เอาละ มาเริ่มกัน

GlusterFS พูดมาซะยาว แล้วตกลงมันเอาไว้ทำอะไร โอเครอย่างที่เรารู้ ๆ กัน ปกติ Application ที่เราทำงานกันอยู่บน Pod มันมักจะเป้น Stateless(ไม่มีการเก็บข้อมูลหรือไฟล์ใด ๆ เป็น) ใช่หรือไม่… ทีนี้มันก็จะมีบาง Application อะ ที่มันต้องเขียนข้อมูลลงไป อาทิเช่น SQLServer, Redis หรือ RabbitMQ(ถ้าจะ Persist Filed) แต่ว่า เราจะเขียนข้อมูลลงไปยังไงละ

ปกติ ถ้าเราจะเขียนข้อมูลลงไปโดยใช้ Pod เราต้อง Mount Volume ถูกมั้ยครับ และบอก Pod ว่า เออ…..นายไปเก็บไฟล์ที่ Path นู้น นั้น นี้ นะ คือถ้าทำที่ละ Pod อะครับมันก็ทำได้หละ แต่ถ้าต้องการ Scale ละ อะสมมุติ จาก 1 ไป 3 Pod ก็ยังพอไหวใช่มั้ยคับ มานั้งทำมือ ๆ (ถึงจะไม่ควรก็เถอะ) แต่ทีนี้ถ้า 3 ไป 20 Pod ละ ………… ทำมือมั้ยยย (ลองดูก็ได้คับ 55+) โอเค นอกเรื่องมาไกล เราเลยต้องทำ VolumeClaimTemplate เพื่อบอกให้ K8S รุ้ว่าเมื่อเราต้องการ Pod เพิ่ม ให้ Auto Mount ฺVolume ให้ด้วย เพื่อการันตีว่า ทุก ๆ Pod จะมีที่เขียนไฟล์ของตัวเอง และไม่ทะเลาะกัน(เขียนทับ) เป็นต้น แล้วไอ VolumeClaimTemplate แต่เดิม(เมื่อปีที่แล้ว) ต้องใช้ GlusterFS หรือ Cloud เท่านั้นถึงจะทำ Dynamic Volume ได้ครับ ซึ่งมันก็จะเป็นเพราะเหตุผลประการณ์ฉะนี้หละครับ

ซึ่งปัญหาที่ผมเจอคืออะไรน่ะหรอคับ คือบางทีเรา Restart Node แล้ว Gluster มันพังไปเลย ต้องทำใหม่(น่าจะเพราะประสบการณ์ด้วย) ซึ่งผมคิดว่ามันไม่ควรพังง่าย ๆ แค่การ Restart Node ตอนแรกคิดว่านาน ๆ เป็นทีเลยไม่ได้คิดอะไร เลยลองอีก ครั้ง อ่าว ไม่เป็นล่ะ…… ก็เลย งงๆ คือ ถ้าจะเป็นช่วยเป็นให้ตลอดได้มั้ยจะได้หาทางแก้ อะไรประมาณนี้ครับ มันเลยยังเป้นความเสี่ยงอยู่หน่อย ๆ ว่าควรไปต่อดีมั้ยหน่อออ แต่เวลา ณ ปัจจุบันที่กำลังเขียนนี้ ก็ยังไม่เจอปัญหาใด ๆ เพิ่มเติมครับ ก็เด๋วถ้าเจอเด๋วจะมาแขร์กันอีกทีครับผม ไว้เจอกันใหม่ บทความหน้าครับบบบ

--

--