[บันทึกกันลืม] ปัญหา Kubernetes มี Disk Pressure แล้วทำให้ pods อยู่ในสถานะ Evicted ค้างจำนวนมาก

ปัญหา: เมื่อใช้คำสั่ง kubectl get pod -A แล้ว พบว่า มี pod แสดงสถานะ Evicted เป็นจำนวนมาก (จริง ๆ แล้วมีสถานะอื่นที่ไม่ใช่ Running จำนวนมาก) ตรวจสอบ: สันนิษฐานว่า Disk เต็ม ใช้คำสั่ง kubectl describe node | grep -i DiskPressure พบว่า KubeletHasDiskPressure แสดงว่า มีปัญหาอะไรสักอย่างกับ Storage และเมื่อดูด้วย kubectl logs -f pod/thepodname -n thenamespace พบว่า “attempting to reclaim ephemeral-storage” แนวทางการแก้ปัญหา: แต่ละ node ติดตั้งแบบแบ่ง Partition ให้ OS เป็น / (พื้นที่ 100 GB) และ พื้นที่ใช้งานจริง เป็น /data (2.5 TB) ตรวจสอบด้วยคำสั่ง df -h / พบว่า มีการใช้พื้นที่ เกิน 80% ปัญหานี้เคยเกิดขึ้นกับตอนใช้ Docker แก้ไขโดยการย้าย /var/lib/docker ไปไว้ที่ /data/docker ซึ่งมีพื้นที่มากกว่า แต่ในระบบ Kubernetes ใช้ containerd และ kubelet วิธีย้าย containerd ไปไว้ใน /data ตามลำดับ ที่ nodeX (ควรทำทีละ node) กลับมาที่ control plane, ให้ทำการ drain ด้วยคำสั่ง ต่อไปนี้ แล้วรอจนเสร็จ กลับมาที่ nodeX ทำการย้ายข้อมูลของ containerd และ kubelet มาไว้ที่ใหม่ แก้ไข /etc/systemd/system/kubelet.service.d/10-kubeadm.conf เพิ่ม –root-dir=/data/kubelet สร้าง containerd configuration แก้ไข containerd configuration ดังนี้ จากนั้น start containerd และ kubelet กลับมา กลับไปที่ control plane แล้วเอา nodeX กลับมาทำงานเหมือนเดิม ตรวจสอบ nodeX ว่า DiskPressure มีสถานะเป็น KubeletHasNoDiskPressure หรือไม่ด้วยคำสั่ง ถ้าเรียบร้อยแล้ว กลับไปที่ nodeX เพื่อลบข้อมูลเก่า (เฉพาะ /var/lib/containerd/) จากนั้นวนทำทีละ node จนครบ

Read More »

วิธีซ่อนเวอร์ชัน Apache และ Linux (Ubuntu/Debian) OS จากส่วนหัว HTTP Headers

How to Hide Your Apache Version and Linux (Ubuntu/Debian) OS From HTTP Headers ด้วย (ร่าง) มาตรฐานเว็บไซต์มหาวิทยาลัยสงขลานครินทร์ พ.ศ. 2567 และแนวปฏิบัติการรักษาความมั่นคงปลอดภัยเว็บไซต์ (Website Security Guideline) สำนักงานคณะกรรมการการรักษาความมั่นคงปลอดภัยไซเบอร์แห่งชาติ (สกมช.) สำหรับการใช้งาน HTTP Response headers* ถูกใช้เพื่อส่งต่อนโยบายความปลอดภัยไปยังเบราเซอร์  ทำให้การเปิดเว็บไซต์ของเรามีความปลอดภัยเพิ่มมากขึ้น ซึ่งการกำหนดให้ Server Type ไม่แสดงข้อมูล เกี่ยวกับระบบปฏิบัติการและรุ่นของโปรแกรมเว็บไซต์ ที่ส่งผ่าน HTTP Response headers ที่ใช้งานผ่าน Apache2 เวอร์ที่สูงกว่า 2.4.8 มีวิธีซ่อนเวอร์ชัน Apache และ Linux (Ubuntu/Debian) OS จากส่วนหัว HTTP Headers ดังนี้ ขั้นตอนที่ 1 เข้าใช้งานผ่าน SSH เปลี่ยนระดับผู้ใช้งานเป็น root ที่สามารถแก้ไขข้อมูลระบบได้ ขั้นตอนที่ 2 แก้ไขการตั้งค่า Apache server configuration โดยใช้โปรแกรม Nano (โปรแกรมแก้ไขข้อความที่คุณต้องการ) Debian/Ubuntu: nano /etc/apache2/conf-enabled/security.conf ขั้นตอนที่ 3 เลื่อนหาส่วนการตั้งค่า “ServerTokens” ขั้นตอนที่ 4 เลื่อนหาส่วนการตั้งค่า “ServerSignature” ขั้นตอนที่ 5 บันทึกและออกจากไฟล์ Nano : Crt+O เพื่อทำการบันทึก และ Crt+X เพื่อออกจากการแก้ไข ขั้นตอนที่ 6 Restart Apache2 Debian/Ubuntu: /ete/ini.d/apache2 restart

Read More »

[บันทึกกันลืม] วิธีหาไฟล์ที่มีคำที่ต้องการ โดยแสดงเฉพาะ ชื่อไฟล์เท่านั้น

โจทย์ ต้องการหาไฟล์ที่มีคำว่า text_pattern จากทุกไฟล์ในไดเรคทอรี่ /path/to/ ที่มีนามสกุล .ipynb แต่ต้องไม่มีคำว่า checkpoint ใน path หรือชื่อไฟล์

Read More »