設定 Envoy 啟動屬性
當用於服務網格的 Envoy 代理程式和 gRPC 程式庫初始化時,就需要連線至 Cloud Service Mesh,並成為 Cloud Service Mesh 用戶端。如要建立這類連線,用戶端必須使用設定資訊進行引導,例如:
- 如何找到 Cloud Service Mesh (
trafficdirector.googleapis.com
) - 用戶端應要求設定的虛擬私有雲網路名稱
- 其他選用資訊,例如是否要啟用記錄功能
本文說明如何在使用 Envoy 搭配 Cloud Service Mesh 時,提供啟動資訊。您提供引導設定的方式會因部署服務的方式而異:
- 如要瞭解自動與 VM 一併部署的 Envoy 附屬 Proxy,請參閱「使用自動 Envoy 部署功能設定 VM 的選項」,瞭解建立執行個體範本時的參數等效項目。
- 針對透過 GKE Pod 自動部署的 Envoy 附屬 Proxy,請將下列支援的參數新增至附屬插入器的
ConfigMap
中的proxyMetadata
。如要進一步瞭解如何設定必要屬性,請參閱使用自動 Envoy 插入來設定 Google Kubernetes Engine Pod。 - 如果是手動 Envoy 部署作業,請將下列支援的參數新增至 Proxy 的 Bootstrap 節點中繼資料設定。
僅支援 xDS 第 3 版。如果您使用的是 xDS 第 2 版,請按照「從 xDS 第 2 版遷移至 xDS 第 3 版」一文的說明,將廣告活動遷移至 xDS 第 3 版。
手動 Envoy 部署作業的必要啟動設定
下表列出所有必要的 Bootstrap 設定屬性。
屬性 | 值 | 說明 |
---|---|---|
TRAFFICDIRECTOR_NETWORK_NAME | 字串。例如:預設值。 | Google Cloud 要要求設定的 VPC 網路名稱 (這是 Google Cloud API 中轉送規則中參照的 VPC 網路名稱)。使用 xDS v3 API 時,您必須提供網路名稱。 不建議將此值留空。日後推出的版本不保證支援空值。 |
TRAFFICDIRECTOR_GCP_PROJECT_NUMBER | 包含數字的字串。例如 123456789 。 |
設定 Cloud Service Mesh 資源的 Google Cloud 專案。這是專案的數字 ID (例如 111222333444 )。您可以使用 gcloud projects list 指令,或查看 Google Cloud 主控台的「Project info」部分,取得所有專案的清單,並查看相應的專案編號。使用 xDS v3 API 時,您必須提供專案編號。 |
手動 Envoy 部署的選用啟動設定
下表包含所有選用的引導設定屬性。
屬性 | 值 | 說明 |
---|---|---|
TRAFFICDIRECTOR_INTERCEPTION_PORT | 介於 0 到 65535 之間的整數 | 攔截事件監聽器的通訊埠號碼。傳送至 Cloud Service Mesh 中所設定服務的流量必須重新導向至這個通訊埠。 如果這個值留空,Cloud Service Mesh 就不會設定攔截事件監聽器。如果您的設定取決於封包流量攔截,缺少攔截事件監聽器就會中斷流量。對於中介 Proxy 用途 (僅需攔截入站流量),這個欄位並非必要。 |
TRAFFICDIRECTOR_ACCESS_LOG_PATH | 存取記錄檔案的路徑,以字串表示。例如:「/var/log/sidecar/access.log」 | 這個參數的值會用於檔案存取記錄設定,並由 Cloud Service Mesh 連同其他參數傳送至 Proxy。所有傳入和傳出要求都會記錄在這個檔案中。詳情請參閱 Envoy 代理程式的檔案存取記錄說明文件。 |
TRAFFICDIRECTOR_ENABLE_TRACING | 布林值,以字串表示,例如 true |
讓補充 Proxy 產生分散式追蹤資訊。如果設為 true ,Cloud Service Mesh 會在附加元件 Proxy 中編寫 Envoy 追蹤參數,並將 generate_request_id 設為「true」。 |
以下是如何在 Envoy 代理程式自我啟動設定的節點中繼資料區段中,設定支援的屬性,範例採用 YAML 格式:
node: metadata: TRAFFICDIRECTOR_INTERCEPTION_PORT: "15001" TRAFFICDIRECTOR_NETWORK_NAME: "default" TRAFFICDIRECTOR_GCP_PROJECT_NUMBER: "111222333444" TRAFFICDIRECTOR_ACCESS_LOG_PATH: "/tmp/sidecar/access.log" TRAFFICDIRECTOR_ENABLE_TRACING: "true"