PixiuGatewayPolicy 是一个自定义资源扩展,用于为 Pixiu Gateway 实例配置网关级别的策略。
控制 Gateway 中所有监听器的空闲、读取和写入超时
apiVersion: pixiu.apache.org/v1alpha1
kind: PixiuGatewayPolicy
metadata:
name: gateway-timeout-policy
namespace: pixiu-gateway-system
spec:
targetRef:
group: gateway.networking.k8s.io
kind: Gateway
name: pixiu-listeners
listener:
timeout:
idle: 300s
read: 60s
write: 60s
配置分布式追踪以跟踪跨服务的请求
apiVersion: pixiu.apache.org/v1alpha1
kind: PixiuGatewayPolicy
metadata:
name: gateway-tracing-policy
namespace: pixiu-gateway-system
spec:
targetRef:
group: gateway.networking.k8s.io
kind: Gateway
name: pixiu-listeners
tracing:
name: jaeger
serviceName: pixiu-gateway
sampler:
type: probabilistic
param: "0.1"
config:
url: http://jaeger-collector:14268/api/traces
headers:
Authorization: "Bearer token"
自定义网关的日志行为
apiVersion: pixiu.apache.org/v1alpha1
kind: PixiuGatewayPolicy
metadata:
name: gateway-log-policy
namespace: pixiu-gateway-system
spec:
targetRef:
group: gateway.networking.k8s.io
kind: Gateway
name: pixiu-listeners
log:
level: info
encoding: json
outputPaths:
- stdout
- /var/log/pixiu/gateway.log
errorOutputPaths:
- stderr
- /var/log/pixiu/error.log
development: false
disableCaller: false
disableStacktrace: false
设置优雅关闭行为
apiVersion: pixiu.apache.org/v1alpha1
kind: PixiuGatewayPolicy
metadata:
name: gateway-shutdown-policy
namespace: pixiu-gateway-system
spec:
targetRef:
group: gateway.networking.k8s.io
kind: Gateway
name: pixiu-listeners
shutdown:
timeout: 30s
stepTimeout: 5s
rejectPolicy: immediate
配置全局连接和请求超时
apiVersion: pixiu.apache.org/v1alpha1
kind: PixiuGatewayPolicy
metadata:
name: gateway-global-timeout-policy
namespace: pixiu-gateway-system
spec:
targetRef:
group: gateway.networking.k8s.io
kind: Gateway
name: pixiu-listeners
timeout:
connect: 10s
request: 30s
PixiuGatewayPolicy 使用 targetRef 字段绑定到特定的 Gateway 资源。策略应用于 targetRef 中指定的 Gateway。
gateway.networking.k8s.io/v1):将网关级别配置应用于 Gateway 中的所有监听器targetRef.kind 必须是 GatewaytargetRef.name 必须匹配现有的 Gateway 资源targetRef.namespace,策略应用于与策略相同命名空间中的 GatewaytargetRef.namespace,它必须与 Gateway 的命名空间匹配目前,只能将一个 PixiuGatewayPolicy 应用于 Gateway。如果多个策略目标相同的 Gateway,行为取决于实现。建议每个 Gateway 使用单个策略以避免冲突。
状态条件:PixiuGatewayPolicy 资源包含一个 status 字段,其中包含指示策略当前状态的条件: