使用 QPOptions 扩展队列代理镜像¶
Knative 服务 Pod 包含两个容器
- 用户主服务容器,名为
user-container
- 队列代理 - 一个名为
queue-proxy
的 sidecar,充当user-container
前面的反向代理
您可以扩展队列代理以提供其他功能。队列代理的 QPOptions 功能允许其他运行时包扩展队列代理功能。
例如,security-guard 存储库提供了一个使用 QPOptions 功能的扩展。该 QPOption 包使用户能够向队列代理添加额外的安全功能。
可用的运行时功能是在构建队列代理镜像时确定的。队列代理定义了一种有序的方式来激活和配置扩展。
附加信息¶
- 启用队列代理 Pod 信息 - 讨论启用扩展使用所需的步骤。
- 使用由 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)
}
}