บทความ


แก้ปัญหากรณีที่ไม่สามารถเพิ่ม custom template ที่สร้างขึ้นมาใน Certificate Templates ได้

ในกรณีประสงค์ที่จะสร้าง self-signed certificate เพื่อใช้งานบน Windows Server สำหรับบริการต่าง ๆ เช่น Remote Desktop Connection หรือโพรโทคอล LDAPS โดยทั่วไปแล้วจะใช้วิธีเปิดใช้งาน role “Active Directory Certificate Services” เพื่อสร้าง root certificate และใช้ root certificate ออก certificate สำหรับบริการนั้น ๆ โดยมักจะใช้ custom template เพื่อให้สะดวกต่อการออก certificate ที่ตรงความต้องการ ปัญหา ในกรณีปกติ เมื่อสร้าง custom template ผ่านโปรแกรม Certificate Templates Console (certtmpl. […]


การลบ/แทนที่ OSD ใน Rook Ceph

กรณีที่อุปกรณ์ (HDD, SSD, ฯลฯ) ล้มเหลว จะต้องลบ OSD ของอุปกรณ์ที่มีปัญหาออก อาการหนึ่งของอุปกรณ์ล้มเหลวที่สังเกตได้คือ pod ของ OSD ที่จัดการอุปกรณ์นั้น มี STATUS เป็น CrashLoopBackoff เมื่อใช้คำสั่ง kubectl -n rook-ceph get pod -l app=rook-ceph-osd โดยบทความนี้จะอธิบายถึงขั้นตอนในการลบ OSD ออกจากคลัสเตอร์ ข้อควรระวัง นำอุปกรณ์ที่มีปัญหาออกจาก CephCluster (หากตั้ง useAllDevices: true ใน CephCluster ไว้ ให้ข้ามขั้นตอนนี้) แก้ไข CephCluster โดยนำรายการอุปกรณ์ที่มีปัญหาออก ด้วยคำสั่ง บทความนี้จะยกตั […]


การติดตั้ง Rook Ceph บน Kubernetes Cluster

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


ใช้ 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 […]


ประกาศช่องทางอิเล็กทรอนิกส์สำหรับติดต่อกรมป่าไม้

เพื่อให้เป็นไปตามพระราชบัญญัติการปฏิบัติราชการทางอิเล็กทรอนิกส์ พ.ศ.๒๕๖๕ Download เอกสารแนบ และระบบสำหรับปฏิบัติหน้าที่โดยวิธีทางอิเล็กทรอนิกส์


แผนภาพแสดงการเพิ่มโนดใน 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 ที่ผ่านการปรับการตั้งค่าให้เหม […]