Skip to content

การกำหนดค่า

แพลตฟอร์มนี้มีศูนย์กลางการกำหนดค่าเพียงจุดเดียว คือไฟล์ values ของ Helm chart สำหรับความแตกต่างในแต่ละสภาพแวดล้อม เช่น โดเมน, แบบเดี่ยวหรือแบบ HA, แหล่งที่มาของ TLS หรือการเลือกระบบย่อยที่จะเปิดใช้งาน ทั้งหมดนี้เป็นค่ากำหนดในระดับบนสุดที่มีค่าเริ่มต้นที่เหมาะสมมาให้ในตัว คุณไม่จำเป็นต้องเข้าไปแก้ไข manifest ด้วยตนเอง และไม่ต้องจัดการค่ากำหนดในหลาย ๆ ที่พร้อมกัน

จุดกำหนดค่าเพียงหนึ่งเดียว ปรับปุ่มควบคุมเพียงไม่กี่จุด

โปรดหลีกเลี่ยงการแก้ไขสถานะในคลัสเตอร์โดยตรง และใช้วิธีการปรับเปลี่ยนค่าในไฟล์ค่ากำหนดแล้วสั่งรัน helm upgrade ใหม่แทน เนื่องจากการกำหนดค่าด้วยตนเองภายนอก chart จะเกิดปัญหาความคลาดเคลื่อนของข้อมูล (drift) และอาจถูกบันทึกทับในขั้นตอนการอัปเกรดหรือการปรับประสานสถานะครั้งถัดไป

โครงสร้างการจัดหมวดหมู่ค่ากำหนด

ค่ากำหนดต่าง ๆ จะถูกจัดกลุ่มตามวัตถุประสงค์การใช้งาน โดยมีกลุ่มสำคัญดังนี้

กลุ่มรายละเอียดการควบคุมเอกสารเพิ่มเติม
globalโดเมนหลัก โดเมนย่อย ตัวคั่นโดเมน สวิตช์เปิดใช้งาน HA ระบบ registry/mirror ค่า Storage class และ namespace prefixTLS และโดเมน, ระบบความพร้อมใช้งานสูง (High availability)
tlsโหมดของใบรับรองและระบบออกใบรับรองTLS และโดเมน
certManager, redisOperator, cnpgเลือกว่าจะติดตั้ง operator เหล่านี้ใหม่หรือใช้งานระบบเดิมที่มีอยู่แล้วการใช้งาน operator เดิมบนคลัสเตอร์
postgres, redis, keycloak, controlPlane, consoleส่วนประกอบหลักในส่วนจัดเก็บสถานะและแอปพลิเคชันหน้านี้
observabilityชุดซอฟต์แวร์ระบบตรวจสอบสถานะการทำงานและระยะเวลาจัดเก็บข้อมูลระบบตรวจสอบสถานะการทำงานของแพลตฟอร์ม
ssoการเข้าสู่ระบบด้วย OIDC สำหรับ console และแดชบอร์ดSSO และ IdP
budgets, rateLimits, guardrails, modelAllowlist, modelRouterกำหนดค่าเริ่มต้นนโยบายความปลอดภัยสำหรับ data planeงบประมาณและขีดจำกัด, ระบบป้องกัน (Guardrails)
semantic, semanticCache, semanticGuardฐานข้อมูลเวกเตอร์ ข้อมูลฝังตัว และฟีเจอร์ที่เกี่ยวข้องระบบแคชตามความหมาย (Semantic cache), ระบบตรวจสอบคำสั่งที่ไม่ปลอดภัย (Semantic guard)
mcpระบบ MCP gatewayเซิร์ฟเวอร์ MCP
auditระยะเวลาเก็บรักษาประวัติการใช้งาน (Audit log)การตรวจสอบประวัติและการปฏิบัติตามข้อกำหนด
imagesลิงก์อ้างอิง registry และเวอร์ชันของแต่ละส่วนประกอบที่ผ่านการทดสอบแล้วการอัปเกรดระบบ
secretsวิธีการระบุข้อมูลรับรองสิทธิ์และรหัสผ่านส่วนข้อมูลที่เป็นความลับ (Secrets) ด้านล่าง
devตัวช่วยสำหรับทดสอบเท่านั้น ห้ามเปิดใช้งานในสภาพแวดล้อมจริงเด็ดขาดหน้านี้

คุณสามารถตรวจสอบรายการคีย์ทั้งหมดพร้อมค่าเริ่มต้นได้ที่ เอกสารอ้างอิงการกำหนดค่า

โดเมนและตัวคั่นตัวตน

global.baseDomain ทำหน้าที่เป็นโดเมนหลัก โดยโดเมนย่อยแต่ละรายการจะอยู่ในรูปแบบ <label><separator><baseDomain> ตัวคั่นใน global.subdomainSeparator จะมีค่าเริ่มต้นเป็น "." เช่น api.ai-gateway.example.com หรือเลือกใช้เป็น "-" เพื่อให้ทุกบริการทำงานอยู่ภายใต้ wildcard หลักตัวเดียวได้ เช่น api-ai-gateway.example.com ซึ่งจะอยู่ภายใต้ความครอบคลุมของ *.example.com

ตัวตนผู้เช่า (Tenant identity) จะใช้งานข้อมูล tuple แบบ 3 ส่วน คือ organization.project.user เป็นชื่อผู้บริโภค ซึ่งเป็นรูปแบบโครงสร้างหลักที่อยู่เบื้องหลังคีย์ งบประมาณ และการแยกส่วนข้อมูล ดูรายละเอียดเพิ่มเติมได้ที่ ระบบหลายผู้เช่า (Multi-tenancy)

การเปิดใช้งานระบบย่อยเพิ่มเติม

ระบบย่อยส่วนใหญ่จะเปิดใช้งานได้ผ่านสวิตช์ enabled พร้อมกับการกำหนดค่าเพิ่มเติมอีกเล็กน้อย ตัวอย่างเช่น

yaml
controlPlane:
  enabled: true     # จำเป็นต้องเปิดใช้งานสำหรับใช้งาน console, งบประมาณ และค่ากำหนดประจำโปรเจกต์
postgres:
  enabled: true     # แหล่งข้อมูลความจริงหนึ่งเดียวสำหรับ control plane
keycloak:
  enabled: true     # ระบบเชื่อมต่อตัวตนระดับองค์กร (per-org SSO)
semanticCache:
  enabled: true     # จำเป็นต้องใช้ semantic.qdrant และ semantic.ollama โดยระบบจะตั้งค่าให้โดยอัตโนมัติ
mcp:
  enabled: true     # MCP gateway

การขึ้นต่อกันของระบบ (dependency) จะถูกควบคุมอย่างเหมาะสม ตัวอย่างเช่น control plane จำเป็นต้องใช้งาน PostgreSQL และฟีเจอร์ด้านความหมาย (semantic) จะช่วยเปิดใช้งานโครงสร้าง Qdrant และ Ollama ร่วมกันโดยอัตโนมัติเมื่อมีการเปิดใช้งานฟีเจอร์ตัวใดตัวหนึ่งขึ้นมา

ข้อมูลที่เป็นความลับ (Secrets)

ข้อมูลสิทธิ์การใช้งานและรหัสผ่านจะไม่มีวันถูกจัดเก็บในไฟล์ values ที่คุณคอมมิต โดยระบบรองรับการทำงาน 2 รูปแบบดังนี้

  • secrets.createFromValues: true — ตัว chart จะสร้าง Kubernetes Secrets ขึ้นมาจากไฟล์ values อีกไฟล์หนึ่งที่ถูกแยกส่วนและถูกระบุในไฟล์ .gitignore ซึ่งเป็นวิธีที่สะดวกสำหรับขั้นตอนเริ่มต้นใช้งาน
  • secrets.createFromValues: false — ตัว chart จะอ้างอิงไปยัง Secrets เดิมที่มีอยู่แล้วในระบบ ซึ่งคุณดูแลจัดการผ่าน Vault, sealed-secrets หรือระบบภายนอกอื่น ๆ ซึ่งเป็นวิธีแนะนำสำหรับสภาพแวดล้อมที่ใช้งานจริง

ดูรายละเอียดเพิ่มเติมได้ที่คู่มือ การเสริมสร้างความปลอดภัย (Hardening) สำหรับแนวทางการจัดการข้อมูลที่เป็นความลับทั้งหมด

การปรับใช้การเปลี่ยนแปลง

bash
helm upgrade opsta-ai-gateway oci://ghcr.io/opsta/charts/opsta-ai-gateway \
  -n opsta-ai-gateway -f values.yaml -f secrets-values.yaml

ข้อมูลนโยบายความปลอดภัยและข้อมูลผู้เช่า เช่น ผู้บริโภค งบประมาณ ผู้ให้บริการ รูปแบบกฎป้องกัน (guardrail patterns) จะถูกจัดการผ่านทาง control plane ในขณะระบบกำลังทำงาน และจะถูกปรับประสานสถานะไปยัง gateway อย่างต่อเนื่อง โดยการเปลี่ยนแปลงเหล่านี้ไม่จำเป็นต้องทำการอัปเกรด Helm chart เนื่องจากตัว chart จะเป็นเจ้าของค่ากำหนดในระดับผลิตภัณฑ์ (product-level) ส่วน control plane จะเป็นเจ้าของค่ากำหนดในระดับผู้เช่า (tenant-level) ดูรายละเอียดเพิ่มเติมได้ที่ สถาปัตยกรรมระบบ

ขั้นตอนต่อไป

Enterprise AI governance, on infrastructure you own.