콘텐츠로 이동

HTTP 로드밸런서 강화

HTTP 로드밸런서 스키마에 대한 강화 메타데이터입니다. 확장 정의는 OpenAPI 확장을 참조하세요.

viewshttp_loadbalancer.*SpecType과 일치하는 모든 스키마는 강화를 적용받습니다:

  • viewshttp_loadbalancerCreateSpecType
  • viewshttp_loadbalancerReplaceSpecType
  • viewshttp_loadbalancerGetSpecType

x-f5xc-minimum-configuration 확장은 최소 실행 가능한 HTTP 로드밸런서를 생성하기 위한 포괄적인 CLI 메타데이터를 제공합니다.

필드제약 조건설명
metadata.nameDNS 레이블 형식: [a-z0-9]([-a-z0-9]*[a-z0-9])?리소스 이름
metadata.namespaceDNS 레이블 형식네임스페이스
spec.domains배열, min_items: 1서비스할 도메인

다음 로드밸런서 유형 중 하나를 지정해야 합니다:

변형설명
spec.httpHTTP 전용
spec.https수동 인증서를 사용하는 HTTPS
spec.https_auto_cert자동 인증서를 사용하는 HTTPS
spec.http_httpsHTTP 및 HTTPS 모두

참고: 로드밸런서 유형 OneOf 그룹은 다음과 같이 참조됩니다:

  • 구성 파일에서는 lb_type (config/minimum_configs.yaml의 축약 형식)
  • OpenAPI 사양 네이티브 확장에서는 loadbalancer_type (네이티브 필드 이름)

API 스키마 참조: x-ves-oneof-field-loadbalancer_type: ["http", "https", "https_auto_cert", "http_https"]

{
"metadata": {
"name": "example-app",
"namespace": "default"
},
"spec": {
"domains": ["example.com"],
"https_auto_cert": {
"port": 443,
"tls_config": {"default_security": {}}
},
"advertise_on_public_default_vip": {},
"routes": [{"prefix": "/", "origin_pool": {"pool_name": "backend-pool"}}]
}
}

x-f5xc-server-default: true로 표시된 필드는 요청에서 생략될 때 F5 XC API 서버가 default 값을 적용합니다. HTTP 로드밸런서는 대부분의 보안 기능 및 프로토콜 옵션이 비활성화 또는 안전한 상태로 기본 설정되기 때문에 서버 적용 기본값의 수가 많습니다.

https_auto_cert가 지정된 경우, 서버는 생략된 필드에 대해 다음 기본값을 적용합니다:

필드기본값유형설명
port443integerHTTPS 수신 포트
http_redirectfalsebooleanHTTP에서 HTTPS로 리디렉션
add_hstsfalsebooleanHTTP Strict Transport Security 헤더
tls_config.default_security{}object강력한 암호화를 사용하는 TLS 1.2 이상
no_mtls{}object상호 TLS 비활성화
default_header{}object기본 서버 이름 헤더 처리
enable_path_normalize{}object경로 정규화 활성화
default_loadbalancer{}object기본 로드밸런서 설정
header_transformation_type.legacy_header_transformation{}object레거시 헤더 변환
connection_idle_timeout120000integer연결 유휴 타임아웃(밀리초, 2분)
http_protocol_options.http_protocol_enable_v1_v2{}objectHTTP/1.1 및 HTTP/2 활성화
coalescing_options.default_coalescing{}object기본 HTTP/2 연결 병합

모든 보안 기능은 생략 시 기본적으로 비활성화됩니다:

필드기본값설명
disable_waf{}웹 앱 방화벽 (WAF) 비활성화
disable_bot_defense{}Bot 방어 비활성화
disable_rate_limit{}속도 제한 비활성화
disable_api_discovery{}API 검색 비활성화
disable_api_testing{}API 테스트 비활성화
disable_api_definition{}API 정의 비활성화
disable_malware_protection{}맬웨어 보호 비활성화
disable_client_side_defense{}클라이언트 측 방어 비활성화
disable_ip_reputation{}IP 평판 비활성화
disable_threat_mesh{}위협 메시 비활성화
disable_malicious_user_detection{}악성 사용자 감지 비활성화

DDoS 보호 및 액세스 제어 기본값

섹션 제목: “DDoS 보호 및 액세스 제어 기본값”
필드기본값설명
l7_ddos_protection.mitigation_block{}DDoS 트래픽 차단 (기본 완화 조치)
l7_ddos_protection.default_rps_threshold{}기본 RPS 임계값 사용
l7_ddos_protection.clientside_action_none{}클라이언트 측 DDoS 검증 없음
l7_ddos_protection.ddos_policy_none{}DDoS 정책 참조 없음
no_challenge{}클라이언트 챌린지 없음
user_id_client_ip{}클라이언트 IP로 사용자 식별
disable_trust_client_ip_headers{}클라이언트 IP 헤더 신뢰 안 함
필드기본값유형설명
advertise_on_public_default_vip{}object공개 기본 VIP에 광고
round_robin{}object라운드 로빈 로드밸런싱 알고리즘
add_locationtrueboolean응답에 위치 헤더 추가
system_default_timeouts{}object시스템 기본 타임아웃 사용
service_policies_from_namespace{}object네임스페이스에서 서비스 정책 상속
default_sensitive_data_policy{}object기본 민감한 데이터 정책 사용

x-f5xc-conflicts-with로 표시된 필드는 OneOf 패턴을 나타냅니다. 각 그룹에서 하나의 필드만 지정할 수 있습니다.

그룹 이름필드설명
lb_typehttp, https, https_auto_cert, http_https로드밸런서 프로토콜 유형
advertisingadvertise_on_public_default_vip, advertise_on_public, advertise_custom, do_not_advertise로드밸런서 광고 방법
load_balancing_algorithmround_robin, least_request, ring_hash, random트래픽 분산 알고리즘
그룹 이름필드설명
tls_configdefault_security, medium_security, low_security, custom_securityTLS 보안 수준
mtlsno_mtls, use_mtls상호 TLS 활성화 또는 비활성화
그룹 이름필드설명
http_protocolhttp_protocol_enable_v1_only, http_protocol_enable_v1_v2, http_protocol_enable_v2_onlyHTTP 프로토콜 버전
header_transformationlegacy_header_transformation, proper_header_transformation, preserve_case_header_transformationHTTP 헤더 변환 유형
server_name_headerdefault_header, append_server_name_header, pass_through_server_name_header서버 이름 헤더 처리
그룹 이름필드설명
path_normalizeenable_path_normalize, disable_path_normalize경로 정규화 활성화 또는 비활성화
loadbalancer_choicenon_default_loadbalancer, default_loadbalancer기본 또는 비기본 로드밸런서
coalescingdefault_coalescing, disable_coalescing, enable_for_same_originHTTP/2 연결 병합 옵션
그룹 이름필드설명
wafdisable_waf, enable_waf웹 앱 방화벽 (WAF)
bot_defensedisable_bot_defense, enable_bot_defenseBot 감지 및 완화
rate_limitdisable_rate_limit, enable_rate_limit속도 제한
api_discoverydisable_api_discovery, enable_api_discoveryAPI 검색
api_testingdisable_api_testing, enable_api_testingAPI 테스트
api_definitiondisable_api_definition, enable_api_definitionAPI 정의
malware_protectiondisable_malware_protection, enable_malware_protection맬웨어 보호
client_side_defensedisable_client_side_defense, enable_client_side_defense클라이언트 측 방어
ip_reputationdisable_ip_reputation, enable_ip_reputationIP 평판
threat_meshdisable_threat_mesh, enable_threat_mesh위협 메시
malicious_user_detectiondisable_malicious_user_detection, enable_malicious_user_detection악성 사용자 감지
그룹 이름필드설명
ddos_mitigationmitigation_block, mitigation_challenge, mitigation_noneDDoS 완화 조치
ddos_rps_thresholddefault_rps_threshold, custom_rps_threshold초당 요청 임계값
ddos_clientside_actionclientside_action_none, clientside_action_javascript, clientside_action_captcha클라이언트 측 DDoS 검증 조치
ddos_policyddos_policy_none, ddos_policy_refDDoS 정책 참조 또는 없음
그룹 이름필드설명
challengeno_challenge, js_challenge, captcha_challengeBot 감지를 위한 클라이언트 챌린지 유형
user_identificationuser_id_client_ip, user_identification사용자 식별 방법
client_ip_headersdisable_trust_client_ip_headers, enable_trust_client_ip_headers클라이언트 IP 헤더 신뢰 여부
timeoutssystem_default_timeouts, custom_timeouts시스템 기본 또는 사용자 지정 타임아웃 사용
service_policies_sourceservice_policies_from_namespace, active_service_policies네임스페이스 또는 활성 목록에서 서비스 정책
sensitive_data_policydefault_sensitive_data_policy, custom_sensitive_data_policy기본 또는 사용자 지정 민감한 데이터 정책 사용

상태: http_loadbalancer 스키마에 아직 적용되지 않음.

OneOf 그룹에서 가장 일반적인 선택을 나타내는 x-f5xc-recommended-oneof-variant를 포함하는 healthcheck와 달리, http_loadbalancer는 현재 이 확장이 없습니다.

Healthcheck (구현됨):

viewshealthcheckCreateSpecType:
x-f5xc-recommended-oneof-variant:
health_check: "http_health_check"

HTTP LoadBalancer (아직 구현되지 않음):

viewshttp_loadbalancerCreateSpecType:
x-f5xc-recommended-oneof-variant: null # 권장 lb_type 변형을 나타낼 예정

http_loadbalancer에 이 확장을 추가하려면:

  1. F5 XC 콘솔 기본 선택 항목을 관찰합니다 (예: UI에서 어떤 lb_type이 미리 선택되는지)
  2. config/discovered_defaults.yaml에 구성을 추가합니다
  3. 강화 파이프라인을 다시 실행하여 확장을 적용합니다

추가 시 예상 구조:

viewshttp_loadbalancerCreateSpecType:
x-f5xc-recommended-oneof-variant:
loadbalancer_type: "https_auto_cert" # 예시 - 검증 필요

이 확장은 다운스트림 도구가 사용자에게 구성 옵션을 제시할 때 가장 일반적으로 사용되는 변형을 미리 선택할 수 있도록 합니다.

x-f5xc-constraints로 표시된 필드에는 API 분석을 통해 발견된 유효성 검사 제약 조건이 포함됩니다.

필드minItemsmaxItemsuniqueItems
spec.domains1-false
spec.routes1256false
spec.blocked_clients1128true
spec.trusted_clients1128true
spec.data_guard_rules1256true
필드최솟값최댓값기본값설명
spec.https_auto_cert.port165535443HTTPS 포트 번호
spec.https_auto_cert.connection_idle_timeout10003600000120000연결 유휴 타임아웃(밀리초, 1초~1시간)
필드기본값설명
spec.https_auto_cert.tls_configdefault_security, medium_security, low_security, custom_securitydefault_securityTLS 보안 수준
spec.https_auto_cert.header_transformation_typelegacy_header_transformation, proper_header_transformation, preserve_case_header_transformationlegacy_header_transformationHTTP 헤더 변환
spec.https_auto_cert.http_protocol_optionshttp_protocol_enable_v1_only, http_protocol_enable_v1_v2, http_protocol_enable_v2_onlyhttp_protocol_enable_v1_v2HTTP 프로토콜 버전
spec.https_auto_cert.coalescing_optionsdefault_coalescing, disable_coalescing, enable_for_same_origindefault_coalescingHTTP/2 연결 병합
spec.load_balancing_algorithmround_robin, least_request, ring_hash, randomround_robin로드밸런싱 알고리즘
spec.l7_ddos_protection.mitigationmitigation_block, mitigation_challenge, mitigation_nonemitigation_block레이어 7 DDoS 완화 조치
spec.l7_ddos_protection.rps_thresholddefault_rps_threshold, custom_rps_thresholddefault_rps_thresholdDDoS 감지를 위한 RPS 임계값
spec.l7_ddos_protection.clientside_actionclientside_action_none, clientside_action_javascript, clientside_action_captchaclientside_action_none클라이언트 측 DDoS 검증
spec.challengeno_challenge, js_challenge, captcha_challengeno_challenge클라이언트 챌린지 유형
spec.advertisingadvertise_on_public_default_vip, advertise_on_public, advertise_custom, do_not_advertiseadvertise_on_public_default_vip로드밸런서 광고

강화 파이프라인은 사양 수준에서 x-f5xc-guided-workflows 메타데이터를 추가합니다. 이러한 워크플로는 AI 어시스턴트 및 CLI 도구가 사용하는 단계별 배포 안내를 제공합니다.

백엔드 오리진 풀을 포함하여 완전히 구성된 HTTP 로드밸런서를 생성하기 위한 5단계 워크플로 (config/guided_workflows.yaml에 정의됨):

단계작업리소스필수 필드선택 사항
1오리진 풀 생성origin_poolname, origin_servers, port아니오
2헬스 체크 구성healthcheckname, http_health_check
3헬스 체크 연결--
4HTTP 로드밸런서 생성http_loadbalancername, domains, http.port아니오
5배포 확인--아니오

사전 요구 사항: 대상 테넌트에 유효한 네임스페이스, IP 또는 DNS로 접근 가능한 백엔드 애플리케이션, SSL 인증서(HTTPS의 경우 선택 사항).

TLS를 사용한 HTTPS 로드밸런서 배포

섹션 제목: “TLS를 사용한 HTTPS 로드밸런서 배포”

SSL/TLS 종료가 포함된 HTTPS 로드밸런서를 생성하기 위한 7단계 워크플로:

단계작업리소스필수 필드선택 사항
1SSL 인증서 업로드certificatename, certificate_chain, private_key아니오
2오리진 풀 생성origin_poolname, origin_servers아니오
3헬스 체크 구성healthcheck-
4WAF 정책 구성app_firewall-
5HTTPS 로드밸런서 생성http_loadbalancername, domains, https.tls_parameters아니오
6WAF 정책 연결--
7HTTPS 배포 확인--아니오

사전 요구 사항: 대상 테넌트에 유효한 네임스페이스, SSL 인증서 및 개인 키, 접근 가능한 백엔드 애플리케이션.

다운스트림 도구는 이러한 워크플로를 사용하여 사용자에게 다단계 배포를 안내합니다:

  • xcsh CLI: 대화형 가이드 명령으로 워크플로 제공 (예: xcsh deploy http-lb)
  • VS Code 확장: 진행 상황 추적 기능을 갖춘 사이드바 패널에 워크플로 단계 표시
  • AI 어시스턴트: 워크플로 단계를 순차적으로 따르며 각 리소스를 생성하고 의존성 검증

이러한 공급업체 확장은 F5 XC 특정 메타데이터를 전달하기 위해 표준 OpenAPI 스키마에 추가됩니다.

유형: string

CLI 및 도구 구성을 위한 도메인 분류를 나타냅니다.

viewshttp_loadbalancerCreateSpecType:
type: object
x-f5xc-cli-domain: "virtual"

유형: object

최소 실행 가능한 구성을 생성하기 위한 포괄적인 메타데이터를 제공합니다. 포함 항목:

  • 설명
  • 제약 조건이 있는 필수 필드
  • 상호 배타적 그룹
  • 예제 구성 (YAML, JSON)
  • curl 명령 예제
viewshttp_loadbalancerCreateSpecType:
type: object
x-f5xc-minimum-configuration:
description: "HTTP/HTTPS load balancer for distributing traffic across origin pools"
required_fields:
- "metadata.name"
- "metadata.namespace"
- "spec.domains"
mutually_exclusive_groups:
- name: "lb_type"
fields: ["spec.http", "spec.https", "spec.https_auto_cert", "spec.http_https"]
reason: "Choose exactly one load balancer type"
example_yaml: |
...
example_json: |
...
example_curl: |
...

유형: boolean

true인 경우, 함께 제공되는 default 값이 F5 XC API 서버에 의해 적용됨을 나타냅니다. 이 확장이 있는 필드는 API 요청에서 안전하게 생략할 수 있으며, 서버가 자동으로 기본값을 적용합니다.

disable_waf:
type: object
default: {}
x-f5xc-server-default: true

유형: array of strings

OneOf 패턴을 나타내며, 현재 필드와 상호 배타적인 필드 이름을 나열합니다.

advertise_custom:
type: object
x-f5xc-conflicts-with:
- advertise_on_public
- advertise_on_public_default_vip
- do_not_advertise

유형: object

배열 크기 제한, 정수 범위, 고유성 요구 사항 및 검색 메타데이터를 포함한 유효성 검사 제약 조건을 제공합니다.

routes:
type: array
x-f5xc-constraints:
constraintType: "array"
minItems: 1
maxItems: 256
uniqueItems: false
metadata:
source: "discovery"
confidence: 0.99
validatedAt: "2026-01-19T12:00:00Z"
port:
type: integer
x-f5xc-constraints:
constraintType: "number"
minimum: 1
maximum: 65535
metadata:
source: "discovery"
confidence: 0.99

x-f5xc-description-short 및 x-f5xc-description-medium

섹션 제목: “x-f5xc-description-short 및 x-f5xc-description-medium”

유형: string

다양한 사용 사례를 위한 대체 설명 길이를 제공합니다:

  • x-f5xc-description-short: 최대 60자 (CLI 열, 배지)
  • x-f5xc-description-medium: 최대 150자 (툴팁, 요약)
domains:
type: array
description: "List of domains the load balancer will serve"
x-f5xc-description-short: "Domains to serve"
x-f5xc-description-medium: "List of domains for which the load balancer accepts traffic"

유형: any (필드 유형과 일치)

문서 및 도구를 위한 구체적인 필드 예제를 제공합니다.

name:
type: string
x-f5xc-example: "example-app"
domains:
type: array
x-f5xc-example: ["example.com", "www.example.com"]

유형: array of strings

minimum_config, create, update, read 플래그를 사용하여 컨텍스트별 요구 사항을 나타냅니다.

metadata.name:
type: string
x-f5xc-required-for: ["minimum_config", "create"]
metadata.uid:
type: string
x-f5xc-required-for: ["read"]
파일내용
docs/specifications/api/virtual.json강화가 포함된 모든 http_loadbalancer 스키마
docs/specifications/api/openapi.json모든 스키마가 포함된 병합된 사양
파일목적
config/minimum_configs.yaml최소 구성 메타데이터의 소스
config/constraint_patterns.yaml제약 조건 패턴 정의
config/guided_workflows.yaml가이드 워크플로 단계 정의
config/domain_descriptions.yaml도메인 수준 설명 메타데이터
  • viewshttp_loadbalancerCreateSpecType - 생성 작업 스키마
  • viewshttp_loadbalancerReplaceSpecType - 업데이트 작업 스키마
  • viewshttp_loadbalancerGetSpecType - 읽기 작업 스키마
버전날짜변경 사항
2.0.462026-04-18서버 적용 기본값, 가이드 워크플로 통합 및 최소 구성 섹션 확장 추가
2.0.452026-01-20초기 http_loadbalancer 강화 문서