組態來源 (proto)
config.core.v3.ApiConfigSource
[config.core.v3.ApiConfigSource proto]
API 組態來源。這會識別 Envoy 將用來擷取 xDS API 的 API 類型和叢集。
{
"api_type": ...,
"transport_api_version": ...,
"cluster_names": [],
"grpc_services": [],
"refresh_delay": {...},
"request_timeout": {...},
"rate_limit_settings": {...},
"set_node_on_first_message_only": ...,
"config_validators": []
}
- api_type
(config.core.v3.ApiConfigSource.ApiType) API 類型 (gRPC、REST、delta gRPC)
- transport_api_version
(config.core.v3.ApiVersion) xDS 傳輸協定的 API 版本。這描述 xDS gRPC/REST 端點和線路上使用的 [Delta]DiscoveryRequest/Response 版本。
- cluster_names
(重複 字串) 叢集名稱應僅與 REST 一起使用。如果定義了 > 1 個叢集,如果發生任何類型的故障,叢集將會循環使用。
注意
名稱為
cluster_name
的叢集必須靜態定義,且其類型不得為EDS
。
- grpc_services
(重複 config.core.v3.GrpcService) 可以為 GRPC 提供多個 gRPC 服務。如果定義了 > 1 個叢集,如果發生任何類型的故障,服務將會循環使用。
- refresh_delay
(持續時間) 對於 REST API,連續輪詢之間的延遲。
- request_timeout
(持續時間) 對於 REST API,請求逾時。如果未設定,將使用預設值 1 秒。
- rate_limit_settings
(config.core.v3.RateLimitSettings) 對於 GRPC API,速率限制設定。如果存在,Envoy 發出的探索請求將會受到速率限制。
- set_node_on_first_message_only
(布林值) 跳過串流 gRPC 組態類型的後續探索請求中的節點識別碼。
- config_validators
(重複 config.core.v3.TypedExtensionConfig) 從 ApiConfigSource 收到新更新時將執行的組態驗證器清單。請注意,每個驗證器都會處理特定的 xDS 服務類型,並且只會呼叫對應於類型 URL 的驗證器 (在
:ref: DiscoveryResponse
或:ref: DeltaDiscoveryResponse
中)。如果驗證器傳回 false 或擲回例外,則用戶端將會拒絕該組態,並會傳送 NACK。
列舉 config.core.v3.ApiConfigSource.ApiType
[config.core.v3.ApiConfigSource.ApiType proto]
API 可以透過 REST 或 gRPC 擷取。
- REST
REST-JSON v2 API。使用 v2 protos 的 標準 JSON 編碼。
- GRPC
SotW gRPC 服務。
- DELTA_GRPC
使用 delta xDS gRPC 服務,例如 DeltaDiscovery{Request,Response} 而不是 Discovery{Request,Response}。xDS 伺服器不會在每次更新時都將整個狀態傳送給 Envoy,而是只會傳送自上次更新以來所變更的內容。
config.core.v3.AggregatedConfigSource
[config.core.v3.AggregatedConfigSource proto]
彙總探索服務 (ADS) 選項。目前此選項為空白,但在 ConfigSource 中設定時,可用於指定要使用 ADS。
config.core.v3.RateLimitSettings
[config.core.v3.RateLimitSettings proto]
要套用於 Envoy 發出的探索請求的速率限制設定。
{
"max_tokens": {...},
"fill_rate": {...}
}
- max_tokens
(UInt32Value) 用於速率限制探索請求呼叫的最大權杖數目。如果未設定,將使用預設值 100。
- fill_rate
(DoubleValue) 每秒將填入權杖的速率。如果未設定,將使用預設的每秒 10 個權杖的填入速率。最小填入速率為每年一次。較低的填入速率將設定為每年一次。
config.core.v3.PathConfigSource
[config.core.v3.PathConfigSource proto]
本機檔案系統路徑組態來源。
{
"path": ...,
"watched_directory": {...}
}
- path
(字串, 必要) 檔案系統上的路徑,用於來源和監看組態更新。在為 密碼 來源組態時,也會監看憑證和金鑰檔案的更新。
注意
來源的路徑必須在組態載入時存在。
注意
如果未設定
watched_directory
,Envoy 將會監看檔案路徑的移動。這是因為一般而言,只有移動才是不可分割的。此處也可以使用與 執行階段文件 中示範的相同檔案交換方法。如果設定了watched_directory
,則不會直接在此路徑上放置監看。而是會使用設定的watched_directory
來觸發此路徑的重新載入。這在某些部署案例中是必要的。請參閱下文以取得更多資訊。
- watched_directory
(config.core.v3.WatchedDirectory) 如果已設定,將會監看此目錄的移動。當此目錄中的項目移動到時,將會重新載入
path
。這在某些部署案例中是必要的。具體而言,如果嘗試使用 Kubernetes ConfigMap 載入 xDS 資源,可能會使用下列組態:1. 將 xds.yaml 儲存在 ConfigMap 內。2. 將 ConfigMap 掛接到
/config_map/xds
3. 設定路徑/config_map/xds/xds.yaml
4. 設定監看目錄/config_map/xds
上述組態將確保 Envoy 監看擁有目錄的移動,這在 Kubernetes 於不可分割的更新期間如何管理 ConfigMap 符號連結時是必要的。
config.core.v3.ConfigSource
[config.core.v3.ConfigSource proto]
用於 監聽器、叢集、路由、端點 等的組態,可以從檔案系統或 xDS API 來源取得。檔案系統組態會使用 inotify 監看更新。
{
"path": ...,
"path_config_source": {...},
"api_config_source": {...},
"ads": {...},
"initial_fetch_timeout": {...},
"resource_api_version": ...
}
- path
(字串) 已棄用,改用
path_config_source
。請改用該欄位。必須設定 path、path_config_source、api_config_source、ads 其中之一。
- path_config_source
(config.core.v3.PathConfigSource) 本機檔案系統路徑組態來源。
必須設定 path、path_config_source、api_config_source、ads 其中之一。
- api_config_source
(config.core.v3.ApiConfigSource) API 組態來源。
必須設定 path、path_config_source、api_config_source、ads 其中之一。
- ads
(config.core.v3.AggregatedConfigSource) 設定後,將使用 ADS 來取得資源。將使用引導設定中的 ADS API 組態來源。
必須設定 path、path_config_source、api_config_source、ads 其中之一。
- initial_fetch_timeout
(Duration) 當指定此逾時時,Envoy 在初始化程序期間,對於此 xDS 訂閱上的第一個組態回應,Envoy 最多會等待指定的時間。達到逾時後,即使尚未傳遞第一個組態,Envoy 也會移至下一個初始化階段。計時器會在 xDS API 訂閱開始時啟動,並在第一次組態更新或發生錯誤時解除。0 表示沒有逾時 - Envoy 將無限期地等待第一個 xDS 組態(除非套用另一個逾時)。預設值為 15 秒。
- resource_api_version
(config.core.v3.ApiVersion) xDS 資源的 API 版本。這表示用戶端將請求資源的類型 URL,以及用戶端反過來預期傳遞的資源類型。
config.core.v3.ExtensionConfigSource
[config.core.v3.ExtensionConfigSource proto]
用於延遲綁定的擴充功能組態的組態來源規範。在收到所有初始擴充功能組態之前,父資源會被加溫,除非設定了套用預設組態的旗標。後續的擴充功能更新在每個工作站的基礎上都是原子的。一旦將擴充功能組態套用到請求或連線,它在處理期間會保持不變。如果初始擴充功能組態的傳遞失敗,例如由於逾時,則會套用可選的預設組態。如果沒有預設組態,則會停用該擴充功能,直到收到擴充功能組態為止。停用擴充功能的行為取決於上下文。例如,具有停用擴充功能篩選器的篩選器鏈會拒絕所有傳入的流。
{
"config_source": {...},
"default_config": {...},
"apply_default_config_without_warming": ...,
"type_urls": []
}
- config_source
- default_config
(Any) 如果無法接收初始擴充功能組態或設定了
apply_default_config_without_warming
旗標,則可選擇使用預設組態作為初始組態。
- apply_default_config_without_warming
(bool) 使用預設組態作為初始組態,而無需加溫和等待第一個探索回應。需要提供預設組態。
- type_urls
(repeated string, REQUIRED) 一組允許的擴充功能類型 URL。如果擴充功能組態與集合中的任何類型 URL 不符,則會拒絕更新。
Enum config.core.v3.ApiVersion
[config.core.v3.ApiVersion proto]
xDS API 和非 xDS 服務版本。這用於描述資源和傳輸協定版本(在不同的組態欄位中)。
- AUTO
(預設) 如果未指定,我們假設為 v3;這是唯一支援的版本。
- V2
使用 xDS v2 API。這不再支援。
- V3
使用 xDS v3 API。