Kubernetes in Production

Peeradis Sanguantrakul
Arcadia Software Development
1 min readJan 6, 2020

สวัสดีคับ คุณผู้อ่านทุกท่าน หายไปนานเลยสำหรับ การแชร์ประสบการณ์การใช้งาน k8sตอนนี้ก้น่าจะครบรอบ 1 ปี พอดี ก็ทำให้ผมมีประสบการณ์เพิ่มขึ้น เกี่ยวกับการจัดการ k8s พอสมควร ณ ขณะนี้เองทางผู้เขียนก็กำลังเตรียมตัวสอบ CKA (Certified Kubernetes Admin) อยู่เหมือนกัน ก็ถ้าสอบผ่านแล้วหรือยังไงก็จะมาแชร์กันอีกทีนะครับ สำหรับวันนี้ จะมาแชร์เรื่อง การออกแบบ k8s ในระดับ Production หรือใน องค์กรใหญ่ ๆ กันครับผม

หลัก ๆ แล้วในองค์กร จะแบ่งโซน Network ประมาณ 4 โซนครับ ได้แก่

  1. Internet Facing ก็คือโซนนอกสุด ที่จะรับการติดต่อจากขานอก หรือ ขาให้บริการ User นั้นเอง หลัก ๆ ก็จะมีพวก LoadBalancer อยู่ด้านหน้าเพื่อที่จะแบ่งภาระโหลด ในการรับ Request จำนวนมาก
  2. Public Zone หลัก ๆ โซนนี้จะเป็นพวก Web UI ที่ผ่านมาจาก LoadBalancer ในโซน Internet Facing ซึ่งถ้า Web UI เราจะใช้ K8S ด้วยก็แนะนำว่า ให้สร้างไว้ 1 Cluster แยกออกมาเลย ไว้สำหรับ Web UI หรือ Tool อื่น ๆ ที่ใช้ในฝั่ง Frontend ครับ
  3. Private Zone โซนนี้จะเป็นพวก Web API ที่เป็นหัวใจหลัก ๆ ของ Application รวมถึง พวก External Tool ที่เอามาประกอบกันเช่น RabbitMQ, Redis, GlusterFS (จะอธิบายในบทความอื่น ๆ ต่อไป)
  4. Internal Zone โซนที่อยู่ลึกที่สุด มีความสำคัญมากที่สุด เพราะจะมีข้อมูลที่สำคัญ หรือเป็นความลับที่ โซนนี้ หลัก ๆ ก็คือ พวก Database หรือ Application ที่ใช้ภายในเป็นต้น

โดยแต่ละโซนก็จะมี Firewall กั้นไว้ทุกชั้น ซึ่งเวลาเรา Deploy K8S เราต้องไปปรึกษาและขอให้ทาง Network Admin ว่าเราจะใช้ Port อะไรบ้าง จากเครื่องไหนไปเครื่องไหน ข้ามโซนรึป่าว ซึ้งเป็นเรื่องสำคัญ และจะเจอปัญหาพอสมควรเลย สำหรับคนที่ละเลยหรือข้ามเรื่องนี้ไป (ประสบการณ์ตรง) สำหรับวันนี้ก็เท่านี้ก่อนนะคับ อะ แถมรูปให้ด้วยเผื่องง บัยยยยยส์

--

--