Salta ai contenuti

Miglioramenti dell'Origin Pool

Metadati di arricchimento per gli schemi relativi a origin_pool. Vedere Estensioni OpenAPI per le definizioni delle estensioni.

Tutti gli schemi corrispondenti a origin_pool.*SpecType ricevono arricchimenti:

  • origin_poolCreateSpecType
  • origin_poolReplaceSpecType
  • origin_poolGetSpecType
CampoObbligatorio perNote
metadata.nameTutte le operazioni1-63 caratteri, alfanumerico minuscolo, pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
metadata.namespaceTutte le operazioniIdentificatore namespace
spec.origin_serversCreazioneMinimo 1 elemento
spec.portCreazione1-65535, nessun valore predefinito del server
{
"metadata": {
"name": "my-origin-pool",
"namespace": "default"
},
"spec": {
"origin_servers": [
{
"public_name": {
"dns_name": "backend.example.com"
}
}
],
"port": 443
}
}

I campi contrassegnati con x-f5xc-server-default: true hanno il loro valore default applicato dal server API F5 XC quando vengono omessi dalle richieste.

CampoValore predefinitoTipoDescrizione
no_tls{}objectTLS verso l’origine disabilitato
healthcheck[]arrayNessun controllo di integrità configurato
loadbalancer_algorithmROUND_ROBINenumBilanciamento del carico round-robin
endpoint_selectionDISTRIBUTEDenumUtilizza tutti gli endpoint (locali + remoti)

Quando advanced_options non è specificato, il server si comporta come se fossero impostati questi valori:

CampoValore predefinitoTipoDescrizione
connection_timeout2000integerTimeout di connessione in millisecondi
http_idle_timeout300000integerTimeout di inattività HTTP in millisecondi (5 min)
same_as_endpoint_port{}objectIl controllo di integrità utilizza la porta dell’endpoint
default_circuit_breaker{}objectImpostazioni predefinite del circuit breaker
disable_outlier_detection{}objectRilevamento degli outlier disabilitato
no_panic_threshold{}objectNessuna soglia di panico
disable_subsets{}objectBilanciamento del carico per subset disabilitato
auto_http_config{}objectNegoziazione automatica del protocollo HTTP
disable_proxy_protocol{}objectProtocollo proxy disabilitato
disable_lb_source_ip_persistance{}objectPersistenza IP sorgente LB disabilitata
PercorsoValore predefinitoDescrizione
origin_servers[].labels{}Oggetto labels vuoto
origin_servers[].public_name.refresh_interval0Utilizza l’aggiornamento DNS predefinito del sistema

Discrepanze tra UI e valori predefiniti del server

Sezione intitolata “Discrepanze tra UI e valori predefiniti del server”

L’interfaccia web F5 XC preseleziona valori diversi rispetto a quelli applicati dall’API quando i campi vengono omessi.

CampoPreselezionato nell’UIApplicato dal serverNota
loadbalancer_algorithmLB_OVERRIDEROUND_ROBINLe risorse create tramite UI e tramite API differiscono quando il campo viene omesso
ValoreDescrizioneNote
ROUND_ROBINOgni endpoint integro viene selezionato in ordine round-robinValore predefinito del server
LEAST_REQUESTViene selezionato l’endpoint con il minor numero di richieste attive
RING_HASHHashing consistente tramite ring hash dei nomi degli endpoint
RANDOMSelezione casuale di un endpoint integro
LB_OVERRIDEPolitica di hash ereditata dal load balancer padreValore predefinito dell’UI
ValoreDescrizioneNote
DISTRIBUTEDConsidera sia gli endpoint remoti che quelli localiValore predefinito del server
LOCAL_ONLYVengono utilizzati solo gli endpoint locali
LOCAL_PREFERREDPreferisce gli endpoint locali, si affida a quelli remoti se non disponibili

Gruppi di campi mutuamente esclusivi. È possibile specificare UN SOLO campo per ciascun gruppo:

GruppoCampiValore predefinito del server
Configurazione portaport, automatic_port, lb_portport (esplicito)
TLS verso l’origineno_tls, use_tlsno_tls
Porta controllo di integritàsame_as_endpoint_port, health_check_portsame_as_endpoint_port
Circuit Breakerdefault_circuit_breaker, disable_circuit_breaker, circuit_breakerdefault_circuit_breaker
Rilevamento outlierdisable_outlier_detection, outlier_detectiondisable_outlier_detection
Soglia di panicono_panic_threshold, panic_thresholdno_panic_threshold
Subset LBdisable_subsets, enable_subsetsdisable_subsets
Protocollo HTTPauto_http_config, http1_config, http2_optionsauto_http_config
Protocollo proxydisable_proxy_protocol, proxy_protocol_v1, proxy_protocol_v2disable_proxy_protocol
IP sorgente LBdisable_lb_source_ip_persistance, enable_lb_source_ip_persistancedisable_lb_source_ip_persistance
Pool di connessionienable_conn_pool_reuse, disable_conn_pool_reuseenable_conn_pool_reuse
CampoTipoVincolo
spec.portinteger1-65535
spec.advanced_options.connection_timeoutinteger0-1.800.000 ms
spec.advanced_options.http_idle_timeoutinteger0-600.000 ms
spec.advanced_options.panic_thresholdinteger0-100 (percentuale)
metadata.namestring1-63 caratteri, pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

La console web F5 XC presenta 15 opzioni di configurazione per gli origin pool:

#Etichetta UIPercorso campo APITipoValore predefinito del server
1Porta del server di originespec.[port|automatic_port|lb_port]OneOfport (esplicito)
2Riutilizzo pool di connessionispec.[enable_conn_pool_reuse|disable_conn_pool_reuse]OneOfenable_conn_pool_reuse
3Porta controllo di integritàspec.advanced_options.[same_as_endpoint_port|health_check_port]OneOfsame_as_endpoint_port
4Algoritmo LoadBalancerspec.loadbalancer_algorithmenumROUND_ROBIN
5Selezione endpointspec.endpoint_selectionenumDISTRIBUTED
6TLS verso l’originespec.[no_tls|use_tls]OneOfno_tls
7Timeout connessionespec.advanced_options.connection_timeoutinteger2000 ms
8Timeout inattività HTTPspec.advanced_options.http_idle_timeoutinteger300000 ms
9Circuit Breakerspec.advanced_options.[default_circuit_breaker|disable_circuit_breaker|circuit_breaker]OneOfdefault_circuit_breaker
10Rilevamento outlierspec.advanced_options.[disable_outlier_detection|outlier_detection]OneOfdisable_outlier_detection
11Soglia di panicospec.advanced_options.[no_panic_threshold|panic_threshold]OneOfno_panic_threshold
12Bilanciamento del carico per subsetspec.advanced_options.[disable_subsets|enable_subsets]OneOfdisable_subsets
13Protocollo HTTPspec.advanced_options.[auto_http_config|http1_config|http2_options]OneOfauto_http_config
14Protocollo proxyspec.advanced_options.[disable_proxy_protocol|proxy_protocol_v1|proxy_protocol_v2]OneOfdisable_proxy_protocol
15Persistenza IP sorgente LBspec.advanced_options.[disable_lb_source_ip_persistance|enable_lb_source_ip_persistance]OneOfdisable_lb_source_ip_persistance
FileContenuto
docs/specifications/api/virtual.jsonorigin_poolCreateSpecType, origin_poolReplaceSpecType, origin_poolGetSpecType
docs/specifications/api/openapi.jsonSpecifica unificata con tutti gli schemi
defaults.resources.origin_pool
├── server_applied # Campi con x-f5xc-server-default: true
├── recommended # Campi con x-f5xc-recommended-value
├── advanced_options # Valori predefiniti di advanced_options annidati
├── oneof_choices # Selezioni predefinite OneOf
└── ui_vs_server # Discrepanze tra UI e server

I server di origine possono essere specificati utilizzando diversi tipi varianti. Il tipo determina quali campi aggiuntivi sono obbligatori.

TipoDescrizioneCampi obbligatoriStato
public_nameServer di origine con nome DNS pubblicodns_name✅ Completo
public_ipServer di origine con indirizzo IP pubblicoip (IPv4)✅ Completo
{
"origin_servers": [
{
"public_name": {
"dns_name": "backend.example.com"
}
}
]
}
{
"origin_servers": [
{
"public_ip": {
"ip": "8.8.8.8"
}
}
]
}

TODO: Tipi di server di origine dipendenti dal sito

Sezione intitolata “TODO: Tipi di server di origine dipendenti dal sito”

I seguenti tipi di server di origine richiedono lo sviluppo della logica delle risorse “site” prima dell’implementazione:

TipoDescrizioneCampi obbligatoriStato
private_ipServer di origine con IP privato/pubblico e informazioni sul sitoip, site_locator, network_choice, snat_pool🔲 In attesa della logica del sito
private_nameServer di origine con nome DNS e informazioni sul sitodns_name, site_locator, network_choice, snat_pool🔲 In attesa della logica del sito
k8s_serviceServizio Kubernetes con informazioni sul sitoservice_name, site_locator, network_choice🔲 In attesa della logica del sito
consul_serviceServizio HashiCorp Consul con informazioni sul sitoservice_name, site_locator, network_choice🔲 In attesa della logica del sito

Prima che questi tipi possano essere completamente documentati:

  1. Individuazione delle risorse sito - Documentare lo schema della risorsa site e i pattern site_locator
  2. Enum della scelta di rete - Documentare i valori vincolati di network_choice (site_local_inside, site_local_outside, ecc.)
  3. Opzioni pool SNAT - Documentare i pattern di configurazione del pool SNAT
  4. Riferimenti tra risorse - Definire come origin_pool fa riferimento alle risorse sito
  • Segnaposto di configurazione: config/discovered_defaults.yamlorigin_pool.origin_server_types.enums
  • Sprint correlato: Arricchimenti degli schemi delle risorse sito
VersioneDataModifiche
2.1.22026-01-18Aggiunta sezione sui tipi di server di origine con public_name/public_ip; marcatori TODO per i tipi dipendenti dal sito
2.1.12026-01-18Riscritto come riferimento API puro; rimossi gli esempi di codice downstream
2.1.02026-01-18Aggiornato alla struttura dei valori predefiniti unificata in validation.json
2.0.332026-01-17Documentazione iniziale dei miglioramenti dell’origin pool