自定义资源定义 API 参考
本文档提供了 APISIX Ingress Controller 自定义资源定义 (CRD) 的 API 资源描述。
包
apisix.apache.org/v1alpha1
包 v1alpha1 包含 apisix.apache.org v1alpha1 API 组的 API Schema 定义。
BackendTrafficPolicy
BackendTrafficPolicy 定义了应用于后端服务的流量处理策略配置。
| 字段 | 描述 |
|---|---|
apiVersion string | apisix.apache.org/v1alpha1 |
kind string | BackendTrafficPolicy |
metadata ObjectMeta | 有关 metadata 字段的详细信息,请参阅 Kubernetes API 文档。 |
spec BackendTrafficPolicySpec | BackendTrafficPolicySpec 定义了应用于后端服务的流量处理策略,例如负载均衡策略、连接设置和故障转移行为。 |
Consumer
Consumer 定义了消费者的配置。
| 字段 | 描述 |
|---|---|
apiVersion string | apisix.apache.org/v1alpha1 |
kind string | Consumer |
metadata ObjectMeta | 有关 metadata 字段的详细信息,请参阅 Kubernetes API 文档。 |
spec ConsumerSpec | ConsumerSpec 定义了消费者的配置,包括消费者名称、认证凭证和插件设置。 |
GatewayProxy
GatewayProxy 定义了用于将流量路由到服务的网关代理实例的配置。
| 字段 | 描述 |
|---|---|
apiVersion string | apisix.apache.org/v1alpha1 |
kind string | GatewayProxy |
metadata ObjectMeta | 有关 metadata 字段的详细信息,请参阅 Kubernetes API 文档。 |
spec GatewayProxySpec | GatewayProxySpec 定义了网关代理实例的配置,包括网络设置、全局插件和插件元数据。 |
HTTPRoutePolicy
HTTPRoutePolicy 定义了流量策略的配置。
| 字段 | 描述 |
|---|---|
apiVersion string | apisix.apache.org/v1alpha1 |
kind string | HTTPRoutePolicy |
metadata ObjectMeta | 有关 metadata 字段的详细信息,请参阅 Kubernetes API 文档。 |
spec HTTPRoutePolicySpec | HTTPRoutePolicySpec 定义了 HTTPRoutePolicy 的配置,包括路由优先级和请求匹配条件。 |
PluginConfig
PluginConfig 定义了插件配置。
| 字段 | 描述 |
|---|---|
apiVersion string | apisix.apache.org/v1alpha1 |
kind string | PluginConfig |
metadata ObjectMeta | 有关 metadata 字段的详细信息,请参阅 Kubernetes API 文档。 |
spec PluginConfigSpec | PluginConfigSpec 定义了 PluginConfig 的期望状态,其中指定了插件及其配置。 |
类型
本节描述 CRD 使用的类型。
ActiveHealthCheck
ActiveHealthCheck 定义了主动上游健康检查配置。
| 字段 | 描述 |
|---|---|
type string | Type 是健康检查类型。可以是 http、https 或 tcp。 |
timeout Duration | Timeout 设置健康检查超时时间。 |
concurrency integer | Concurrency 设置同时检查的目标数量。 |
host string | Host 设置健康检查请求中使用的上游主机。 |
port integer | Port 设置要探测的上游节点端口。 |
httpPath string | HTTPPath 设置 HTTP 探测请求路径。 |
strictTLS boolean | StrictTLS 控制是否强制校验 TLS 证书。 |
requestHeaders string 数组 | RequestHeaders 设置探测请求附加的 HTTP 请求头。 |
healthy ActiveHealthCheckHealthy | Healthy 配置将节点标记为健康的阈值。 |
unhealthy ActiveHealthCheckUnhealthy | Unhealthy 配置将节点 标记为不健康的阈值。 |
出现在:
ActiveHealthCheckHealthy
ActiveHealthCheckHealthy 定义了主动将上游节点标记为健康的阈值。
| 字段 | 描述 |
|---|---|
httpCodes integer 数组 | HTTPCodes 是被视为健康的 HTTP 状态码列表。 |
successes integer | Successes 是将节点标记为健康所需的连续成功响应次数。 |
interval Duration | Interval 定义健康检查探测之间的时间间隔,最小值为 1s。 |
出现在:
ActiveHealthCheckUnhealthy
ActiveHealthCheckUnhealthy 定义了主动将上游节点标记为不健康的阈值。
| 字段 | 描述 |
|---|---|
httpCodes integer 数组 | HTTPCodes 是被视为不健康的 HTTP 状态码列表。 |
httpFailures integer | HTTPFailures 是将节点标记为不健康所需的 HTTP 失败次数。 |
tcpFailures integer | TCPFailures 是将节点标记为不健 康所需的 TCP 失败次数。 |
timeouts integer | Timeouts 是将节点标记为不健康所需的超时次数。 |
interval Duration | Interval 定义健康检查探测之间的时间间隔,最小值为 1s。 |
出现在:
AdminKeyAuth
AdminKeyAuth 定义了管理员密钥认证配置。
| 字段 | 描述 |
|---|---|
value string | Value 显式设置管理员密钥值(不建议用于生产环境)。 |
valueFrom AdminKeyValueFrom | ValueFrom 指定管理员密钥的来源。 |
出现在:
AdminKeyValueFrom
AdminKeyValueFrom 定义了管理员密钥的来源。
| 字段 | 描述 |
|---|---|
secretKeyRef SecretKeySelector | SecretKeyRef 引用 Secret 中的一个键。 |
出现在:
AuthType
基础类型 (Base type): string
AuthType 定义了认证的类型。
出现在:
BackendPolicyTargetReferenceWithSectionName
基础类型 (Base type): LocalPolicyTargetReferenceWithSectionName
| 字段 | 描述 |
|---|---|
group Group | Group 是目标资源的 API 组。 |
kind Kind | Kind 是目标资源的种类。 |
name ObjectName | Name 是目标资源的名称。 |
sectionName SectionName | SectionName 是目标资源内某一部分的名称。如果未指定,此 targetRef 将针对整个资源。在以下资源中,SectionName 按如下方式解释: • Gateway:监听器名称 • HTTPRoute:HTTPRouteRule 名称 • Service:端口名称 如果指定了 SectionName,但在目标对象上不存在,则策略必须附加失败,并且策略实现应在策略的状态中记录 ResolvedRefs 或类似的条件。 |
出现在:
BackendTrafficPolicySpec
| 字段 | 描述 |
|---|---|
targetRefs BackendPolicyTargetReferenceWithSectionName 数组 | TargetRef 标识要应用策略的 API 对象。目前,后端(即 Service、ServiceImport 或任何特定实现的 backendRef)是唯一有效的 API 目标引用。 |
loadbalancer LoadBalancer | LoadBalancer 表示 Kubernetes Service 的负载均衡器配置。默认策略是轮询。 |
scheme string | Scheme 是与上游通信时使用的协议。默认值为 http。可选值为 http、https、grpc 或 grpcs。 |
retries integer | Retries 指定当发生超时或 502 错误等情况时,网关应重试发送请求的次数。 |
timeout Timeout | Timeout 设置到上游的读取、发送和连接超时。 |
healthCheck HealthCheck | HealthCheck 定义上游后端的主动和被动健康检查配置。配置后,APISIX 会主动探测后端,或基于实时流量进行被动监控,以检测并绕过不健康节点。 |
passHost string | PassHost 配置当请求转发到上游时,主机标头应如何确定。默认值为 pass。可选值为 pass、node 或 rewrite:• pass:保留原始 Host 标头• node:使用上游节点的主机名• rewrite:通过 upstreamHost 设置为自定义主机 |
upstreamHost Hostname | UpstreamHost 指定上游请求的主机。仅在 passHost 设置为 rewrite 时使用。 |
出现在:
ConsumerSpec
| 字段 | 描述 |
|---|---|
gatewayRef GatewayRef | GatewayRef 指定网关详细信息。 |
credentials Credential 数组 | Credentials 指定消费者的凭证详细信息。 |
plugins Plugin 数组 | Plugins 定义与消费者关联的插件。 |
出现在:
ControlPlaneAuth
ControlPlaneAuth 定义了控制面的认证配置。
| 字段 | 描述 |
|---|---|
type AuthType | Type 指定认证的类型。只能是 AdminKey。 |
adminKey AdminKeyAuth | AdminKey 指定管理员密钥认证配置。 |
出现在:
ControlPlaneProvider
ControlPlaneProvider 定义了控制面提供者的配置。
| 字段 | 描述 |
|---|---|
mode string | Mode 指定控制面提供者的模式。可以是 apisix 或 apisix-standalone。 |
endpoints string 数组 | Endpoints 指定控制面端点的列表。 |
service ProviderService | |
tlsVerify boolean | TlsVerify 指定是否验证控制面的 TLS 证书。 |
auth ControlPlaneAuth | Auth 指定认证配置。 |
出现在:
Credential
| 字段 | 描述 |
|---|---|
type string | Type 指定要为其配置凭证的认证类型。可以是 jwt-auth、basic-auth、key-auth 或 hmac-auth。 |
config JSON | Config 指定认证的凭证详细信息。 |
secretRef SecretReference | SecretRef 引用包含凭证的 Secret。 |
name string | Name 是凭证的名称。 |
出现在:
GatewayProxyPlugin
GatewayProxyPlugin 包含插件配置。
| 字段 | 描述 |
|---|---|
name string | Name 是插件的名称。 |
enabled boolean | Enabled 定义插件是否启用。 |
config JSON | Config 定义插件的配置详细信息。 |
出现在:
GatewayProxyProvider
GatewayProxyProvider 定义了 GatewayProxy 的提供者配置。
| 字段 | 描述 |
|---|---|
type ProviderType | Type 指定提供者的类型。只能是 ControlPlane。 |
controlPlane ControlPlaneProvider | ControlPlane 指定控制面提供者的配置。 |
出现在:
GatewayProxySpec
GatewayProxySpec 定义了 GatewayProxy 的期望状态。
| 字段 | 描述 |
|---|---|
publishService string | PublishService 指定 LoadBalancer 类型 的 Service,控制器使用其外部地址来更新 Ingress 资源的状态。 |
statusAddress string 数组 | StatusAddress 指定控制器用于填充 GatewayProxy 或 Ingress 资源状态字段以供开发者访问的外部 IP 地址。 |
provider GatewayProxyProvider | Provider 配置提供者的详细信息。 |
plugins GatewayProxyPlugin 数组 | Plugins 配置全局插件。 |
pluginMetadata object (keys:string, values:JSON) | PluginMetadata 配置由同一名称的所有插件实例共享的通用配置。 |
出现在:
GatewayRef
| 字段 | 描述 |
|---|---|
name string | Name 是网关的名称。 |
kind string | Kind 是 Kubernetes 对象的类型。默认值为 Gateway。 |
group string | Group 是资源所属的 API 组。默认值为 gateway.networking.k8s.io。 |
namespace string | Namespace 是资源的命名空间。 |
出现在:
HTTPRoutePolicySpec
HTTPRoutePolicySpec 定义了 HTTPRoutePolicy 的期望状态。
| 字段 | 描述 |
|---|---|
targetRefs LocalPolicyTargetReferenceWithSectionName 数组 | TargetRef 标识要应用 HTTPRoutePolicy 的 API 对象(例如 HTTPRoute、Ingress)。 |
priority integer | Priority 设置路由的优先级。当多个路由具有相同的 URI 路径时,较高的值会在路由匹配中设置更高的优先级。 |
vars JSON 数组 | Vars 设置请求匹配条件。 |
出现在:
HealthCheck
HealthCheck 定义了上游节点的主动和被动健康检查配置。
| 字段 | 描述 |
|---|---|
active ActiveHealthCheck | Active 健康检查会主动向上游节点发送请求以确定其可用性。 |
passive PassiveHealthCheck | Passive 健康检查根据观察到的流量(例如超时和错误)评估上游健康状况。 |
出现在: