我可以在 Windows 上以 SCM 執行 Envoy 嗎?

注意

由於資源不足,Envoy 專案已於 2023 年 8 月 31 日終止對 Windows 的官方支援。我們將繼續接受與 Windows 建置相關的修補程式。在另行通知之前,Windows 建置將從 Envoy CI 以及 Envoy 發佈和安全流程中排除。

注意

此功能仍處於實驗狀態。

您可以將 Envoy 作為 Windows 服務啟動,該服務在Windows 服務控制管理員下管理。首先,您需要建立服務。假設您在當前目錄中有一個名為 envoy-custom.yaml 的自訂組態。建立服務後,您可以啟動它。

管理員提示符執行以下命令(請注意,您需要將 C:EnvoyProxy 替換為 envoy.exe 二進位檔案和組態檔案的路徑)

   > sc create EnvoyProxy binpath="C:\EnvoyProxy\envoy.exe --config-path C:\EnvoyProxy\envoy-demo.yaml" start=auto depend=Tcpip/Afd
      [SC] CreateService SUCCESS
   > sc start EnvoyProxy
      SERVICE_NAME: envoyproxy
         TYPE               : 10  WIN32_OWN_PROCESS
         STATE              : 2  START_PENDING
                                 (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
         WIN32_EXIT_CODE    : 0  (0x0)
         SERVICE_EXIT_CODE  : 0  (0x0)
         CHECKPOINT         : 0x0
         WAIT_HINT          : 0x7d0
         PID                : 3924
         FLAGS              :
   > sc query EnvoyProxy
      SERVICE_NAME: envoyproxy
         TYPE               : 10  WIN32_OWN_PROCESS
         STATE              : 4  RUNNING
                                 (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
         WIN32_EXIT_CODE    : 0  (0x0)
         SERVICE_EXIT_CODE  : 0  (0x0)
         CHECKPOINT         : 0x0
         WAIT_HINT          : 0x0
...

使用sc.exe 來設定服務啟動和錯誤處理。

提示

sc query envoyproxy 的輸出包含 Envoy Proxy 的結束代碼。如果參數無效,我們會將其設定為 E_INVALIDARG。如需更多資訊,Envoy 會在 Windows 事件檢視器上回報啟動失敗並顯示錯誤訊息。