QPOptions によるキュープロキシイメージの拡張¶
Knative サービスポッドには 2 つのコンテナが含まれます
user-container
という名前のユーザーのメインサービスコンテナqueue-proxy
という名前のサイドカーのキュープロキシ。user-container
の前にリバースプロキシとして機能します
キュープロキシを拡張して追加の機能を提供できます。キュープロキシの QPOptions 機能により、追加のランタイムパッケージでキュープロキシの機能を拡張できます。
たとえば、security-guard リポジトリは、QPOptions 機能を使用する拡張機能を提供します。 QPOption パッケージを使用すると、キュープロキシに追加のセキュリティ機能を追加できます。
利用可能なランタイム機能は、キュープロキシイメージのビルド時に決定されます。キュープロキシは、拡張機能をアクティベートして構成するための適切な方法を定義しています。
追加情報¶
- キュープロキシポッド情報の有効化 - 拡張機能の使用を有効にするために必要な手順について説明します。
- QPOptions によって有効にされた拡張機能の使用 - サービスを構成して拡張機能で実装された機能を使用する方法について説明します。
拡張機能の追加¶
キュープロキシイメージがビルドされる前に 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)
}
}