Network & Security

Kyverno คืออะไร? คู่มือ Kubernetes Policy-as-Code & Admission Control สำหรับ SME ไทย 2026

Kyverno คืออะไร? ทำไมถึงเป็น Policy Engine ยอดนิยมใน Kubernetes — คู่มือ Policy-as-Code + Admission Control สำหรับ SME ไทย 2026 พร้อมตัวอย่าง YAML ที่ใช้งานจริง

AF
ADS FIT Team
·8 นาที
Share:
🌐

# Kyverno คืออะไร? คู่มือ Kubernetes Policy-as-Code & Admission Control สำหรับ SME ไทย 2026

ในยุคที่ SME ไทยเริ่มย้ายระบบจาก VM ขึ้น Kubernetes มากขึ้น ปัญหาที่มักเกิดขึ้นไม่ใช่แค่ "รันได้หรือไม่" แต่คือ "ใครเอา Image ที่ไม่ปลอดภัยมา Deploy", "ทำไมมี Pod วิ่งในฐานะ root", หรือ "Cluster นี้ใครก็ Apply ได้โดยไม่มี Label Owner" คำถามเหล่านี้เกิดจากการที่ Kubernetes เป็นระบบที่เปิดกว้างมาก — ถ้าไม่มีคนคุม "Policy" คลัสเตอร์จะกลายเป็นของกลางที่ใครก็ทำอะไรก็ได้

Kyverno เข้ามาเพื่อแก้ปัญหานี้ โดยเป็น Policy Engine ที่เขียน Policy เป็น YAML (ไม่ต้องเขียน Rego เหมือน OPA Gatekeeper) ทำให้ทีมที่คุ้นเคยกับ Kubernetes อยู่แล้ว เริ่มใช้งานได้ภายในไม่กี่ชั่วโมง บทความนี้จะพาคุณเข้าใจแนวคิด Policy-as-Code, วิธีทำงานของ Admission Controller, และตัวอย่าง Policy ที่ SME ไทยควรติดตั้งทันทีในปี 2026

หลังอ่านจบ คุณจะได้แผนการ rollout Kyverno ใน Cluster ของตัวเอง ทั้ง audit mode, enforce mode และการบูรณาการเข้ากับ CI/CD Pipeline

Kyverno คืออะไร ต่างกับ OPA Gatekeeper ยังไง

Kyverno เป็นโปรเจกต์ open-source ภายใต้ CNCF ที่ทำหน้าที่เป็น Dynamic Admission Controller สำหรับ Kubernetes คือจะยืนดักทุก API Request ที่ส่งมาที่ kube-apiserver เพื่อตรวจสอบว่า Resource นั้นผ่านเงื่อนไขที่กำหนดไว้หรือไม่ ก่อน commit ลง etcd

จุดเด่นคือเขียน Policy เป็น YAML ปกติ ไม่ต้องเรียนภาษา Rego หรือ Go template ทำให้ทีม DevOps เริ่มต้นได้เร็ว และยังทำได้หลายอย่างกว่า validate เฉยๆ:

  • **Validate** — ตรวจสอบว่า Resource ตรงตามเกณฑ์หรือไม่
  • **Mutate** — แก้ไข Resource อัตโนมัติก่อน apply (เช่น เพิ่ม label, sidecar)
  • **Generate** — สร้าง Resource เพิ่มเติมอัตโนมัติ (เช่น NetworkPolicy ทุกครั้งที่สร้าง Namespace)
  • **Verify Images** — ตรวจลายเซ็น Cosign ของ container image ก่อน deploy
  • **Cleanup** — ลบ Resource ที่ไม่ใช้งานอัตโนมัติ
  • | เปรียบเทียบ | Kyverno | OPA Gatekeeper |

    |-------------|---------|----------------|

    | ภาษา Policy | YAML (K8s-native) | Rego |

    | Learning curve | ต่ำ | สูง |

    | Mutation | รองรับ native | ต้องใช้ external tool |

    | Image verification | รองรับ built-in | ต้อง plug-in เพิ่ม |

    | Community | CNCF Incubating | CNCF Graduated |

    ทำไม SME ไทยถึงควรใช้ Policy-as-Code

    หลาย SME คิดว่า Policy-as-Code เป็นของบริษัทใหญ่เท่านั้น แต่ความจริงคือยิ่งทีมเล็ก ยิ่งต้อง automate ไม่งั้น 1 คนต้องคอยไล่ review YAML ทุกตัวที่เพื่อน deploy

  • ลดความผิดพลาดจากมนุษย์ที่ลืมใส่ resource limit, lisence label, หรือ securityContext
  • บังคับมาตรฐานองค์กรได้อัตโนมัติ เช่น ทุก Deployment ต้องมี Owner label
  • ป้องกัน supply chain attack ด้วยการ verify image signature
  • ช่วยผ่าน audit ISO 27001, SOC 2, PCI-DSS เพราะมีหลักฐานว่า Policy ถูก enforce จริง
  • Onboard คนใหม่เร็วขึ้น เพราะ guardrails บังคับแนวปฏิบัติที่ดีอยู่แล้ว
  • วิธีติดตั้ง Kyverno ใน Cluster

    ขั้นตอนพื้นฐานสำหรับ SME ไทยที่ใช้ Kubernetes 1.28+ ขึ้นไป:

  • Step 1: เพิ่ม Helm repo `helm repo add kyverno https://kyverno.github.io/kyverno/`
  • Step 2: ติดตั้งแบบ High Availability `helm install kyverno kyverno/kyverno -n kyverno --create-namespace --set replicaCount=3`
  • Step 3: เริ่มจาก audit mode ก่อน enforce (validationFailureAction: Audit) เพื่อไม่ break production
  • Step 4: ติดตั้ง Policy Library จาก kyverno.io/policies ที่เหมาะกับองค์กร เช่น Pod Security Standards
  • Step 5: ตรวจ Policy Report ผ่าน `kubectl get polr -A` เพื่อดูสิ่งที่ละเมิด policy
  • Step 6: เมื่อมั่นใจแล้ว ค่อยเปลี่ยนเป็น Enforce mode ทีละ namespace
  • Step 7: เชื่อม Kyverno CLI เข้า CI/CD เพื่อตรวจ manifest ก่อน merge PR
  • ตัวอย่าง Policy ที่ควรเริ่มก่อน

    ```yaml

    apiVersion: kyverno.io/v1

    kind: ClusterPolicy

    metadata:

    name: require-owner-label

    spec:

    validationFailureAction: Audit

    rules:

  • name: check-owner
  • match:

    any:

  • resources:
  • kinds: ["Deployment", "StatefulSet"]

    validate:

    message: "ทุก Workload ต้องมี label 'owner'"

    pattern:

    metadata:

    labels:

    owner: "?*"

    ```

    นี่คือ Policy ง่ายๆ ที่บังคับให้ Deployment ทุกตัวใส่ owner label ซึ่งช่วยให้ทีม cost allocation และ incident response หาคนรับผิดชอบได้ทันที

    Comparison: Kyverno vs OPA Gatekeeper vs Validating Webhook แบบ Custom

    | หัวข้อ | Kyverno | OPA Gatekeeper | Custom Webhook |

    |--------|---------|----------------|----------------|

    | ใช้เวลา rollout | 1-3 วัน | 1-2 สัปดาห์ | 1 เดือนขึ้นไป |

    | ค่าบำรุงรักษา | ต่ำ | ปานกลาง | สูงมาก |

    | เหมาะกับ | SME, Mid-Market | Enterprise ที่ใช้ Rego อยู่แล้ว | ทีมที่มี requirement พิเศษจริงๆ |

    | Mutation | Native | ไม่รองรับ | ได้ แต่ต้องเขียนเอง |

    | ค่าใช้จ่าย | Free (Open-source) | Free | Dev cost สูง |

    สรุป + ขั้นตอนถัดไป

    Kyverno เป็นจุดเริ่มต้นที่ดีสำหรับ SME ไทยที่อยากทำ Policy-as-Code โดยไม่ต้องลงทุนเรียน Rego ใหม่ เริ่มจาก audit mode เพื่อเรียนรู้ รวบรวม violations แล้วค่อยๆ ปิดช่องโหว่ด้วย enforce mode เมื่อทีมพร้อม

    Key takeaways:

  • Kyverno ช่วยบังคับมาตรฐานใน Cluster อัตโนมัติ ลดภาระ review YAML ด้วยมือ
  • เขียน Policy เป็น YAML ทำให้ onboard ทีมได้เร็ว
  • ใช้เป็นหลักฐานสำหรับ compliance audit ได้จริง
  • เริ่ม rollout ใน audit mode ก่อนเพื่อไม่กระทบ production
  • ต้องการที่ปรึกษาวางระบบ Kubernetes Security และ Policy-as-Code ให้ SME ไทย? ทีม ADS FIT พร้อมช่วยวางแผน rollout Kyverno ให้คลัสเตอร์ของคุณปลอดภัยตามมาตรฐาน CIS Benchmark และ PDPA ติดต่อเราที่ contact@adsfit.co.th หรืออ่านบทความอื่นๆ เกี่ยวกับ Kubernetes Security ในบล็อกของเรา

    Tags

    #Kyverno#Kubernetes#Policy-as-Code#Admission Control#DevSecOps#Cloud Native

    สนใจโซลูชันนี้?

    ปรึกษาทีม ADS FIT ฟรี เราพร้อมออกแบบระบบที่ฟิตกับธุรกิจของคุณ

    ติดต่อเรา →

    บทความที่เกี่ยวข้อง