ข้อมูลเมตาการเพิ่มประสิทธิภาพสำหรับสคีมาที่เกี่ยวข้องกับ origin_pool ดูคำนิยามส่วนขยายได้ที่ OpenAPI Extensions
สคีมาทั้งหมดที่ตรงกับ origin_pool.*SpecType จะได้รับการเพิ่มประสิทธิภาพ:
origin_poolCreateSpecType
origin_poolReplaceSpecType
origin_poolGetSpecType
| ฟิลด์ | จำเป็นสำหรับ | หมายเหตุ |
|---|
metadata.name | การดำเนินการทั้งหมด | 1-63 ตัวอักษร, ตัวพิมพ์เล็กและตัวเลข, รูปแบบ: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ |
metadata.namespace | การดำเนินการทั้งหมด | ตัวระบุ namespace |
spec.origin_servers | สร้าง | อย่างน้อย 1 รายการ |
spec.port | สร้าง | 1-65535, ไม่มีค่าเริ่มต้นของเซิร์ฟเวอร์ |
"name": "my-origin-pool",
"dns_name": "backend.example.com"
ฟิลด์ที่ทำเครื่องหมายด้วย x-f5xc-server-default: true จะมีค่า default ถูกกำหนดโดย F5 XC API server เมื่อไม่ได้ระบุในคำขอ
| ฟิลด์ | ค่าเริ่มต้น | ประเภท | คำอธิบาย |
|---|
no_tls | {} | object | ปิดใช้งาน TLS ไปยัง origin |
healthcheck | [] | array | ไม่ได้กำหนดค่า health check |
loadbalancer_algorithm | ROUND_ROBIN | enum | การกระจายโหลดแบบ round-robin |
endpoint_selection | DISTRIBUTED | enum | ใช้ endpoint ทั้งหมด (ในพื้นที่ + ระยะไกล) |
เมื่อไม่ได้ระบุ advanced_options เซิร์ฟเวอร์จะทำงานราวกับว่าตั้งค่าเหล่านี้ไว้:
| ฟิลด์ | ค่าเริ่มต้น | ประเภท | คำอธิบาย |
|---|
connection_timeout | 2000 | integer | ระยะเวลาหมดเวลาการเชื่อมต่อในหน่วยมิลลิวินาที |
http_idle_timeout | 300000 | integer | ระยะเวลา HTTP idle timeout ในหน่วยมิลลิวินาที (5 นาที) |
same_as_endpoint_port | {} | object | Health check ใช้พอร์ตของ endpoint |
default_circuit_breaker | {} | object | การตั้งค่า circuit breaker เริ่มต้น |
disable_outlier_detection | {} | object | ปิดใช้งานการตรวจจับ outlier |
no_panic_threshold | {} | object | ไม่มี panic threshold |
disable_subsets | {} | object | ปิดใช้งานการกระจายโหลดแบบ subset |
auto_http_config | {} | object | การเจรจาโปรโตคอล HTTP อัตโนมัติ |
disable_proxy_protocol | {} | object | ปิดใช้งาน proxy protocol |
disable_lb_source_ip_persistance | {} | object | ปิดใช้งาน LB source IP persistence |
| เส้นทาง | ค่าเริ่มต้น | คำอธิบาย |
|---|
origin_servers[].labels | {} | ออบเจกต์ labels ว่างเปล่า |
origin_servers[].public_name.refresh_interval | 0 | ใช้การรีเฟรช DNS เริ่มต้นของระบบ |
เว็บ UI ของ F5 XC จะเลือกค่าที่แตกต่างจากที่ API กำหนดเมื่อไม่ได้ระบุฟิลด์
| ฟิลด์ | UI เลือกไว้ล่วงหน้า | เซิร์ฟเวอร์กำหนด | หมายเหตุ |
|---|
loadbalancer_algorithm | LB_OVERRIDE | ROUND_ROBIN | ทรัพยากรที่สร้างจาก UI และ API จะแตกต่างกันเมื่อไม่ได้ระบุฟิลด์ |
| ค่า | คำอธิบาย | หมายเหตุ |
|---|
ROUND_ROBIN | เลือก endpoint ที่ดีต่อสุขภาพแต่ละรายการตามลำดับ round-robin | ค่าเริ่มต้นของเซิร์ฟเวอร์ |
LEAST_REQUEST | เลือก endpoint ที่มีคำขอที่ใช้งานอยู่น้อยที่สุด | |
RING_HASH | การ hashing แบบสม่ำเสมอโดยใช้ ring hash ของชื่อ endpoint | |
RANDOM | เลือก endpoint ที่ดีต่อสุขภาพแบบสุ่ม | |
LB_OVERRIDE | นโยบาย hash สืบทอดจาก load balancer หลัก | ค่าเริ่มต้นของ UI |
| ค่า | คำอธิบาย | หมายเหตุ |
|---|
DISTRIBUTED | พิจารณาทั้ง endpoint ระยะไกลและในพื้นที่ | ค่าเริ่มต้นของเซิร์ฟเวอร์ |
LOCAL_ONLY | ใช้เฉพาะ endpoint ในพื้นที่เท่านั้น | |
LOCAL_PREFERRED | ให้ความสำคัญกับ endpoint ในพื้นที่ หากไม่พร้อมใช้งานจึงใช้ระยะไกล | |
กลุ่มฟิลด์ที่ใช้ร่วมกันไม่ได้ สามารถระบุได้เพียงหนึ่งฟิลด์จากแต่ละกลุ่มเท่านั้น:
| กลุ่ม | ฟิลด์ | ค่าเริ่มต้นของเซิร์ฟเวอร์ |
|---|
| การกำหนดค่าพอร์ต | port, automatic_port, lb_port | port (กำหนดชัดเจน) |
| TLS ไปยัง Origin | no_tls, use_tls | no_tls |
| พอร์ต Health Check | same_as_endpoint_port, health_check_port | same_as_endpoint_port |
| Circuit Breaker | default_circuit_breaker, disable_circuit_breaker, circuit_breaker | default_circuit_breaker |
| การตรวจจับ Outlier | disable_outlier_detection, outlier_detection | disable_outlier_detection |
| Panic Threshold | no_panic_threshold, panic_threshold | no_panic_threshold |
| Subset LB | disable_subsets, enable_subsets | disable_subsets |
| โปรโตคอล HTTP | auto_http_config, http1_config, http2_options | auto_http_config |
| Proxy Protocol | disable_proxy_protocol, proxy_protocol_v1, proxy_protocol_v2 | disable_proxy_protocol |
| LB Source IP | disable_lb_source_ip_persistance, enable_lb_source_ip_persistance | disable_lb_source_ip_persistance |
| Connection Pool | enable_conn_pool_reuse, disable_conn_pool_reuse | enable_conn_pool_reuse |
| ฟิลด์ | ประเภท | ข้อจำกัด |
|---|
spec.port | integer | 1-65535 |
spec.advanced_options.connection_timeout | integer | 0-1,800,000 ms |
spec.advanced_options.http_idle_timeout | integer | 0-600,000 ms |
spec.advanced_options.panic_threshold | integer | 0-100 (เปอร์เซ็นต์) |
metadata.name | string | 1-63 ตัวอักษร, รูปแบบ: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ |
เว็บคอนโซลของ F5 XC นำเสนอตัวเลือกการกำหนดค่า 15 รายการสำหรับ origin pool:
| # | ป้ายกำกับใน UI | เส้นทางฟิลด์ API | ประเภท | ค่าเริ่มต้นของเซิร์ฟเวอร์ |
|---|
| 1 | Origin Server Port | spec.[port|automatic_port|lb_port] | OneOf | port (กำหนดชัดเจน) |
| 2 | Connection Pool Reuse | spec.[enable_conn_pool_reuse|disable_conn_pool_reuse] | OneOf | enable_conn_pool_reuse |
| 3 | Health Check Port | spec.advanced_options.[same_as_endpoint_port|health_check_port] | OneOf | same_as_endpoint_port |
| 4 | LoadBalancer Algorithm | spec.loadbalancer_algorithm | enum | ROUND_ROBIN |
| 5 | Endpoint Selection | spec.endpoint_selection | enum | DISTRIBUTED |
| 6 | TLS to Origin | spec.[no_tls|use_tls] | OneOf | no_tls |
| 7 | Connection Timeout | spec.advanced_options.connection_timeout | integer | 2000 ms |
| 8 | HTTP Idle Timeout | spec.advanced_options.http_idle_timeout | integer | 300000 ms |
| 9 | Circuit Breaker | spec.advanced_options.[default_circuit_breaker|disable_circuit_breaker|circuit_breaker] | OneOf | default_circuit_breaker |
| 10 | Outlier Detection | spec.advanced_options.[disable_outlier_detection|outlier_detection] | OneOf | disable_outlier_detection |
| 11 | Panic Threshold | spec.advanced_options.[no_panic_threshold|panic_threshold] | OneOf | no_panic_threshold |
| 12 | Subset Load Balancing | spec.advanced_options.[disable_subsets|enable_subsets] | OneOf | disable_subsets |
| 13 | HTTP Protocol | spec.advanced_options.[auto_http_config|http1_config|http2_options] | OneOf | auto_http_config |
| 14 | Proxy Protocol | spec.advanced_options.[disable_proxy_protocol|proxy_protocol_v1|proxy_protocol_v2] | OneOf | disable_proxy_protocol |
| 15 | LB Source IP Persistence | spec.advanced_options.[disable_lb_source_ip_persistance|enable_lb_source_ip_persistance] | OneOf | disable_lb_source_ip_persistance |
| ไฟล์ | เนื้อหา |
|---|
docs/specifications/api/virtual.json | origin_poolCreateSpecType, origin_poolReplaceSpecType, origin_poolGetSpecType |
docs/specifications/api/openapi.json | ข้อกำหนดที่รวมไว้พร้อมสคีมาทั้งหมด |
defaults.resources.origin_pool
├── server_applied # ฟิลด์ที่มี x-f5xc-server-default: true
├── recommended # ฟิลด์ที่มี x-f5xc-recommended-value
├── advanced_options # ค่าเริ่มต้นของ advanced_options ที่ซ้อนกัน
├── oneof_choices # การเลือกค่าเริ่มต้นของ OneOf
└── ui_vs_server # ความไม่สอดคล้องระหว่าง UI กับเซิร์ฟเวอร์
Origin server สามารถระบุได้โดยใช้ตัวแปรประเภทต่าง ๆ โดยประเภทจะกำหนดว่าต้องใช้ฟิลด์เพิ่มเติมใดบ้าง
| ประเภท | คำอธิบาย | ฟิลด์ที่จำเป็น | สถานะ |
|---|
public_name | เซิร์ฟเวอร์ต้นทางที่มีชื่อ DNS สาธารณะ | dns_name | ✅ สมบูรณ์ |
public_ip | เซิร์ฟเวอร์ต้นทางที่มีที่อยู่ IP สาธารณะ | ip (IPv4) | ✅ สมบูรณ์ |
"dns_name": "backend.example.com"
ประเภท origin server ต่อไปนี้ต้องการการพัฒนาตรรกะทรัพยากร “site” ก่อนการนำไปใช้งาน:
| ประเภท | คำอธิบาย | ฟิลด์ที่จำเป็น | สถานะ |
|---|
private_ip | เซิร์ฟเวอร์ต้นทางที่มี IP ส่วนตัว/สาธารณะและข้อมูล site | ip, site_locator, network_choice, snat_pool | 🔲 รอตรรกะ site |
private_name | เซิร์ฟเวอร์ต้นทางที่มีชื่อ DNS และข้อมูล site | dns_name, site_locator, network_choice, snat_pool | 🔲 รอตรรกะ site |
k8s_service | Kubernetes service ที่มีข้อมูล site | service_name, site_locator, network_choice | 🔲 รอตรรกะ site |
consul_service | HashiCorp Consul service ที่มีข้อมูล site | service_name, site_locator, network_choice | 🔲 รอตรรกะ site |
ก่อนที่ประเภทเหล่านี้จะสามารถจัดทำเอกสารได้อย่างครบถ้วน:
- การค้นหาทรัพยากร Site - จัดทำเอกสารสคีมาทรัพยากร
site และรูปแบบ site_locator
- Enum ของ Network Choice - จัดทำเอกสารค่าที่จำกัดของ
network_choice (site_local_inside, site_local_outside ฯลฯ)
- ตัวเลือก SNAT Pool - จัดทำเอกสารรูปแบบการกำหนดค่า SNAT pool
- การอ้างอิงข้ามทรัพยากร - กำหนดวิธีที่ origin_pool อ้างอิงทรัพยากร site
- ตัวแทนการกำหนดค่า:
config/discovered_defaults.yaml → origin_pool.origin_server_types.enums
- Sprint ที่เกี่ยวข้อง: การเพิ่มประสิทธิภาพสคีมาทรัพยากร site
| เวอร์ชัน | วันที่ | การเปลี่ยนแปลง |
|---|
| 2.1.2 | 2026-01-18 | เพิ่มส่วนประเภท origin server พร้อม public_name/public_ip; เครื่องหมาย TODO สำหรับประเภทที่ขึ้นอยู่กับ site |
| 2.1.1 | 2026-01-18 | เขียนใหม่เป็นการอ้างอิง API ล้วน ๆ; ลบตัวอย่างโค้ดปลายทางออก |
| 2.1.0 | 2026-01-18 | อัปเดตเป็นโครงสร้างค่าเริ่มต้นแบบรวมใน validation.json |
| 2.0.33 | 2026-01-17 | เอกสารการปรับปรุง origin pool เริ่มต้น |