設定 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"