Wee


การสร้างบัญชีผู้ใช้ใน Kubernetes Cluster   เพิ่งได้รับการแก้ไข !

บทความนี้จะแนะนำเกี่ยวกับการสร้างบัญชีผู้ใช้สำหรับจัดการ Kubernetes Cluster เพื่อให้มีสิทธ์ใช้โปรแกรม kubectl, Kubernetes Dashboard, หรือโปรแกรมอื่น ๆ ในการจัดการคลัสเตอร์ได้ โดยจะประกอบไปด้วยขั้นตอนสำหรับผู้ใช้ใหม่ (user) 2 ขั้นตอน (U1-U2) และขั้นตอนสำหรับผู้ดูแลระบบ (administrator) 5 ขั้นตอน (A1-A5) ตามแผนภาพด้านล่าง U1. สร้างไฟล์ private key และ CSR และส่งไฟล์ CSR ให้ผู้ดูแลระบบ ในขั้นตอนนี้ผู้ใช้จะสร้างไฟล์ private key และ Certificate Signing Request (CSR) ซึ่งไฟล์ที่ประกอบไปด้วยข้อมูลเกี่ยว […]


การตั้งค่า SMTP ในปลั๊กอิน WP Mail SMTP รุ่น Free สำหรับ WordPress MultiSite

หากประสงค์จะตั้งค่า SMTP ในปลั๊กอิน WP Mail SMTP รุ่น Free สำหรับ WordPress Multisite ครั้งละจำนวนหลายเว็บไซต์ สามารถทำได้โดยตั้งค่า WP Mail SMTP ในเว็บไซต์หลักให้แล้วเสร็จ จากนั้นจึงใช้คำสั่งต่อไปนี้ อธิบายคำสั่ง คำสั่งด้านบนเป็นชุดคำสั่งที่ใช้กับ WP-CLI (WordPress Command Line Interface) ซึ่งเป็นเครื่องมือที่ใช้จัดการ WordPress ผ่าน command line มาตรฐานของระบบปฏิบัติการ มีวัตถุประสงค์เพื่อคัดลอกการตั้งค่า SMTP จากเว็บไซต์หลักไปยังเว็บไซต์อื่น ๆ ในเครือข่าย WordPress Multisite โดยมีรายละเอียดดั […]


การปลดล็อกบัญชี Oracle Database ผ่านโปรแกรม sqlplus 1

บัญชีในโปรแกรมจัดการฐานข้อมูล Oracle Database อาจถูกล็อคได้ด้วยสาเหตุหลายประการ เช่น รหัสผ่านหมดอายุ มีการเข้าสู่ระบบด้วยรหัสผ่านที่ไม่ถูกต้องเกินจำนวนครั้งที่กำหนด ฯลฯ อาการที่พบคือเมื่อเข้าสู่ระบบด้วยบัญชีที่ถูกล็อกจะพบข้อผิดพลาด ORA-28000: the account is locked สามารถปลดล็อกบัญชีผ่านโปรแกรม sqlplus ได้โดยเปิดโปรแกรม Comand Prompt และพิมพ์คำสั่งดังนี้ หากระบุรหัสผ่านถูกต้องจะพบหน้าต่างที่มีลักษณะดังนี้ พิมพ์คำสั่งต่อไปนี้เพื่อปลดล็อคบัญชี โดยแทนที่ username ด้วยชื่อบัญชีที่ต้องการปลดล็อค


ภาพตัวอย่างข้อผิดพลาด

แก้ไขปัญหากรณีที่ไม่สามารถใช้คำสั่ง kubectl ได้ (the server has asked for the client to provide credentials) ใน RKE2

kubectl เป็นคำสั่งสำหรับใช้จัดการ Kubernetes Cluster โดยจะใช้ใบรับรองอิเล็กทรอนิกส์ในการติดต่อกับ control plane ซึ่งอาจจะพบปัญหาที่ทำให้ไม่สามารถใช้งานคำสั่งดังกล่าวได้เมื่อผ่านไประยะเวลาหนึ่ง ปัญหา เมื่อใช้คำสั่ง เช่น kubectl version หรือ kubectl get node เป็นต้น ผู้ใช้จะพบข้อผิดพลาด “error: You must be logged in to the server (the server has asked for the client to provide credentials)” นอกจากนี้ยังอาจพบข้อผิดพลาดอื่นร่วมด้วย เช่น “E0808 14:08:21.359314 3292 memcache.go:265] […]


แก้ปัญหากรณีที่ไม่สามารถเพิ่ม 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 […]


แผนภาพแสดงการเพิ่มโนดใน 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 <ชื่อผู้ใช้ […]