การจัดการความรู้


ใช้ Local Path Provisioner ช่วยจัดสรรที่จัดเก็บข้อมูลถาวรภายใน Kubernetes Cluster โดยอัตโนมัติ 1

การจัดเก็บข้อมูลถาวรไว้บนโนดใดโนดหนึ่งของ Kubernetes Cluster มีความเสี่ยงที่ข้อมูลจะสูญหายหากโนดที่ใช้เก็บข้อมูลล้มเหลว อย่างไรก็ตาม ในกรณีที่ระบบงานมีความทนทานต่อการสูญหายของข้อมูล เช่น เป็นระบบแบบกระจาย (distributed system) เป็นระบบที่มีคุณสมบัติเกี่ยวกับการทำสำเนาข้อมูล (replication) หรือเป็นระบบทดสอบ อาจจะพิจารณาเลือกใช้วิธีเก็บข้อมูลถาวรไว้บนโนดใดโนดหนึ่ง โดยใช้คุณสมบัติ Local Persistent Volumes ของ Kubernetes ก็ได้ อย่างไรก็ตาม การใช้คุณสมบัติ Local Persistent Volumes มีขั้นตอนที่ค่อนข้างย […]


การจัดเก็บข้อมูลแบบถาวรบน Kubernetes Cluster ในองค์กร

Kubernetes รุ่นแรก ๆ เป็นแพลตฟอร์มการจัดการคอนเทนเนอร์ที่ออกแบบมาเพื่อรองรับแอปพลิเคชันที่ไม่มีสถานะ (stateless applications) ซึ่งไม่จำเป็นต้องจัดเก็บข้อมูลถาวร แต่ในทางปฏิบัติ มีแอปพลิเคชันจำนวนมากที่ต้องจัดเก็บข้อมูลถาวร เช่น ฐานข้อมูล เซิร์ฟเวอร์จัดเก็บไฟล์ ฯลฯ โดยผู้พัฒนา Kubernetes ก็เล็งเห็นถึงปัญหานี้ จึงได้เพิ่มคุณสมบัติสำหรับจัดการข้อมูลแบบถาวร เช่น Persistent Volumes (PVs), Persistent Volume Claims (PVCs), StatefulSet, ฯลฯ เข้ามาเพื่อให้การจัดการเกี่ยวกับการจัดเก็บข้อมูลแบบถาวรบน Kuber […]


แผนภาพแสดงการเพิ่มโนดใน Kubernetes cluster

การเพิ่มโนดใน Kubernetes cluster (RKE 2) โดยใช้ Ansible (role lablabs.rke2) 1

กรณีที่เคยติดตั้ง Kubernetes cluster โดยใช้ Ansible (role lablabs.rke2) แล้วต้องการเพิ่มโนดในภายหลัง หรือแทนที่โนดที่เคยลบไปแล้ว สามารถทำได้โดยมีขั้นตอนดังนี้ ลบระเบียนโนดเก่าออกจากไฟล์ known_hosts กรณีการแทนที่โนดที่เคยลบไปแล้ว ให้ลบระเบียนโนดนั้นออกจากไฟล์ known_hosts ของสถานีงานก่อน โดยใช้คำสั่ง ssh-keygen -R <ชื่อโฮสต์ของโนดเก่า> คัดลอก public key ไปไว้ในไฟล์ authorized_keys ของโนดใหม่ สามารถคัดลอก public key ไปไว้ในไฟล์ authorized_keys ของโนดใหม่ได้โดยใช้คำสั่ง ssh-copy-id <ชื่อผู้ใช้ […]


แผนภาพแสดงการลบโนดออกจาก Kubernetes cluster

การลบโนดออกจาก Kubernetes cluster

กรณีที่โนดขัดข้อง หรือมีความประสงค์ที่จะตั้งค่าโนดใหม่ มีขั้นตอนลบโนดออกจาก Kubernetes cluster ดังนี้ การหยุด pod ทั้งหมดบนโนด สามารถหยุดการทำงานของ pod ทั้งหมด โดยใช้คำสั่ง โดยจะเห็นได้ว่ามีการใช้พารามิเตอร์เพิ่มเติม ดังนี้ ตรวจ pod ในที่ทำงานในโนด ใช้คำสั่ง เพื่อดูว่ายังมี pod ทำงานในโนดนั้นหรือไม่ โดยใช้คำสั่ง หากไม่มี pod ทำงานอยู่ในโนดนั้นแล้ว (ยกเว้น pod ที่จัดการด้วย DaemonSet) สามารถลบโนดออกจาก Kubernetes cluster ได้ในขั้นตอนถัดไป ลบโนดออกจาก Kubernetes cluster โดยใช้คำสั่ง:


การติดตั้งและตั้งค่า cert-manager ให้ออกใบรับรองสำหรับโพรโทคอล HTTPS โดยอัตโนมัติ

ในปัจจุบัน ระบบงานบนเว็บส่วนมากใช้โพรโทคอล HTTPS เพื่อป้องกันการดักจับข้อมูลระหว่างทาง และเพิ่มความเชื่อมั่นให้แก่ผู้ใช้งาน โดยผู้ใช้งานสามารถตรวจสอบความถูกต้องของใบรับรอง TLS ของเว็บได้ผ่านเว็บบราวเซอร์ ซึ่งใน Kubernetes มีเครื่องมือสำหรับจัดการใบรับรองเหล่านี้ คือ cert-manager โดยในบทความนี้จะสาธิตวิธีติดตั้ง cert-manager ใน Kubernetes cluster และแสดงตัวอย่างการสร้าง Ingress พร้อมกับออกใบรับรอง TLS จาก Let’s Encrypt โดยอัตโนมัติ สิ่งที่ต้องจัดเตรียม ติดตั้ง cert-manager ติดตั้ง cert-mana […]


การตั้งค่า Ingress Controller สำหรับ Kubernetes cluster (RKE 2) ที่ใช้ kube-vip

ในการเปิดช่องทางให้ผู้ใช้สามารถเข้าถึง Pod หรือ Deployment จากภายนอกนั้น นอกจากการใช้ Service ประเภท NodePort หรือ LoadBalancer แล้ว ยังสามารถใช้ Ingress เพื่อเปิดให้เข้าถึง Pod/Deployment ผ่าน hostname ที่ถูกเรียกใช้งานได้อีกด้วย ตัวอย่างเช่น โดย Ingress จะเป็นทรัพยากรที่ใช้ตั้งค่า เช่นให้ hostname ไหนใช้ Pod/Deployment ไหน แต่ส่วนที่ทำหน้าที่ประมวลผลการตั้งค่าเหล่านี้คือ Ingress Controller Ingress Controller ที่ติดตั้งมาพร้อมกัน RKE 2 คือ Ingress NGINX Controller ที่ผ่านการปรับการตั้งค่าให้เหม […]


ติดตั้ง Kubernetes โดยใช้ Ansible

การติดตั้ง Kubernetes cluster โดยใช้ Ansible (role lablabs.rke2) 2

Kubernetes เป็นซอฟต์แวร์โอเพนซอร์สสำหรับสร้าง ขยายขนาด และจัดการ container โดยอัตโนมัติ Ansible เป็นซอฟต์แวร์โอเพนซอร์สสำหรับดำเนินการเกี่ยวกับเทคโนโลยีสารสนเทศโดยอัตโนมัติ ทำให้จัดการเครื่องแม่ข่าย/เครื่องแม่ข่ายเสมือน เช่น สั่งการให้ restart, ปรับรุ่นซอฟต์แวร์, หรือเปิดให้ service ทำงาน ได้พร้อม ๆ กัน โดยที่ไม่ต้องเข้าไปจัดการทีละเครื่อง นอกจากนี้ ยังสามารถกำหนดบทบาทของเครื่องแม่ข่ายแต่ละเครื่อง ว่าจะให้ติดตั้ง/ตั้งค่าซอฟต์แวร์อย่างไร โดยการระบุ role ได้อีกด้วย ซึ่งผู้ดูแลระบบสามารถสร้าง เผยแพ […]