使用 QPOptions 擴展 Queue Proxy 映像¶
Knative 服務 Pod 包含兩個容器
- 使用者主要服務容器,名為
user-container
- Queue Proxy - 一個名為
queue-proxy
的 sidecar,作為user-container
前方的反向代理
您可以擴展 Queue Proxy 以提供額外功能。Queue Proxy 的 QPOptions 功能允許額外的執行階段套件來擴展 Queue Proxy 的功能。
例如,security-guard 儲存庫提供了一個使用 QPOptions 功能的擴展。QPOption 套件允許使用者為 Queue Proxy 新增額外的安全功能。
可用的執行階段功能是在建立 Queue Proxy 映像時決定的。Queue Proxy 定義了一種有序的方式來啟動和配置擴展。
其他資訊¶
- 啟用 Queue Proxy Pod 資訊 - 討論啟用擴展使用的必要步驟。
- 使用 QPOptions 啟用的擴展 - 討論如何配置服務以使用擴展中實現的功能。
新增擴展¶
您可以在建立 Queue Proxy 映像之前,替換 cmd/queue/main.go
檔案來新增擴展。以下範例顯示了新增 test-gate
擴展的 cmd/queue/main.go
檔案
package main
import "os"
import "knative.dev/serving/pkg/queue/sharedmain"
import "knative.dev/security-guard/pkg/qpoption"
import _ "knative.dev/security-guard/pkg/test-gate"
func main() {
qOpt := qpoption.NewQPSecurityPlugs()
defer qOpt.Shutdown()
if sharedmain.Main(qOpt.Setup) != nil {
os.Exit(1)
}
}