<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Blogs on Khomkrit | Cloud &amp; Infrastructure Architect</title><link>https://khomkrit.cc/blogs/</link><description>Recent content in Blogs on Khomkrit | Cloud &amp; Infrastructure Architect</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 08 Jun 2026 22:46:12 +0700</lastBuildDate><atom:link href="https://khomkrit.cc/blogs/index.xml" rel="self" type="application/rss+xml"/><item><title>Accuracy Precision Recall</title><link>https://khomkrit.cc/blogs/accuracy-precision-recall/</link><pubDate>Mon, 08 Jun 2026 22:46:12 +0700</pubDate><guid>https://khomkrit.cc/blogs/accuracy-precision-recall/</guid><description>&lt;p&gt;&lt;img alt="Accuracy Precision Recall" loading="lazy" src="https://khomkrit.cc/images/Precision.png"&gt;&lt;/p&gt;
&lt;h2 id="confusion-matrix"&gt;Confusion Matrix&lt;/h2&gt;
&lt;p&gt;ตัวอย่างผลการทำนายจาก Classification Model
เราจะเริ่ม model ที่ใช้ทำนายแค่ 2 class ว่าผลที่ได้คือ positive หรือ negative&lt;/p&gt;
&lt;p&gt;ถ้าเรากำหนดค่า positive threshold ไว้ที่ 0.5&lt;/p&gt;
&lt;p&gt;ถ้าข้อมูลตัวอย่างเป็น 0.7 , 0.3, 0.6 , 0.7 , 0.8, 0.1 , 0.4&lt;/p&gt;
&lt;p&gt;แปลงผลเป็น class ได้เป็น&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;positive, negative, positive, positive, positive, negative, negative
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;เราลองเอาผลการทำนาย กับ ค่าจริง จาก dataset (Ground truth) นำมาเปรียบเทียบกัน&lt;/p&gt;
&lt;p&gt;Ground truth: positive, negative, negative, positive, positive, positive, negative
Predicted: positive, negative, positive ,positive, positive, negative, negative
การวัดผลการทำนายโดย Model จะอยู่ในรูปแบบของ confusion matrix ซึ่งจะมีหน้าตาประมาณนี้&lt;/p&gt;</description></item><item><title>Debug ยังไงดี ? เราไม่มี shell ใน container! วิธีใช้ kubectl debug ทะลวงเข้า Distroless Container ใน Kubernetes</title><link>https://khomkrit.cc/blogs/kubernetes-debug/</link><pubDate>Mon, 08 Jun 2026 22:46:12 +0700</pubDate><guid>https://khomkrit.cc/blogs/kubernetes-debug/</guid><description>&lt;p&gt;&lt;img alt="distorless Debugging" loading="lazy" src="https://khomkrit.cc/images/yamu_jay-computer-9056546.jpg"&gt;&lt;/p&gt;
&lt;p&gt;ในการสร้าง Container Image ระดับ Production มาตรฐานที่เหล่า DevOps และ System Architect มักจะเลือกใช้กันคือการทำ Distroless Image หรือการใช้ FROM scratch เนื่องจากมันมอบข้อได้เปรียบที่สำคัญ 3 ประการให้กับระบบ:&lt;/p&gt;
&lt;p&gt;🚀- Performance &amp;amp; Speed (ขนาดเล็ก โหลดไว): ตัด Component ของระบบปฏิบัติการที่พะรุงพะรังออกไป ทำให้ Image มีขนาดเล็กจิ๋ว ดึง (Pull) จาก Registry ได้ไว และ Start Container ได้รวดเร็ว&lt;/p&gt;
&lt;p&gt;🛡️ - Security (ลดช่องโหว่): ลด Attack Surface หรือพื้นที่การโจมตีจากภายนอกได้อย่างชะงัด เพราะไม่มี Shell (/bin/bash หรือ /bin/sh) และไม่มี Utilities เครื่องมือแฮกใดๆ ติดมาใน Image เลย&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stability (ความเสถียรขั้นสุด): ตัดความซับซ้อนทิ้ง มีเฉพาะ Application Binary และ Dependencies ที่จำเป็นต่อการรันโปรแกรมเท่านั้น&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="pain-point-ปลอดภยสดขด-แต-debug-ชวตเปลยน"&gt;Pain Point: ปลอดภัยสุดขีด แต่ Debug ชีวิตเปลี่ยน&lt;/h3&gt;
&lt;p&gt;ความปลอดภัยที่ได้มา แลกมากับความเจ็บปวดตอนที่ระบบมีปัญหาบน Production ครับ เพราะโดยปกติเวลาเราต้องการเข้าไปดู State ภายใน Pod เรามักจะใช้ท่ามาตรฐานคือ:&lt;/p&gt;</description></item></channel></rss>