注意
此集成目前处于 Alpha 阶段。我们正尝试评估其使用情况,因此如果您正在使用或对此感兴趣,请通过 #knative-serving Slack 频道与我们联系。
使用 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)
}
}