Serving API

软件包

autoscaling.internal.knative.dev/v1alpha1

v1alpha1 软件包包含 Autoscaling v1alpha1 API 类型。

资源类型

PodAutoscaler

PodAutoscaler 是 Knative 的一个抽象,它封装了 Knative 组件实例化自动扩缩器所用的接口。此定义是一个抽象,可能由多个定义支持。有关详细信息,请参阅 Knative 可插拔性演示文稿:https://docs.google.com/presentation/d/19vW9HFZ6Puxt31biNZF3uLRejDmu82rxJIk1cWmxF7w/edit

字段 描述
apiVersion
字符串
autoscaling.internal.knative.dev/v1alpha1
kind
字符串
PodAutoscaler
metadata
Kubernetes meta/v1.ObjectMeta
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。
spec
PodAutoscalerSpec
(可选)

Spec 包含 PodAutoscaler 的期望状态(来自客户端)。



containerConcurrency
int64
(可选)

ContainerConcurrency 指定 Revision 中每个容器允许的最大正在处理(并发)请求数。默认为 0,表示并发不受限制。

scaleTargetRef
Kubernetes core/v1.ObjectReference

ScaleTargetRef 定义了此 PodAutoscaler 负责快速调整大小的 /scale-able 资源。

reachability
ReachabilityType
(可选)

Reachability 指定是否可以访问 ScaleTargetRef(即是否有路由)。默认为 ReachabilityUnknown

protocolType
knative.dev/networking/pkg/apis/networking.ProtocolType

应用层协议。与从修订规范推断出的 ProtocolType 匹配。

status
PodAutoscalerStatus
(可选)

Status 传达 PodAutoscaler 的观测状态(来自控制器)。

Metric

Metric 表示用于配置指标收集器的资源。

字段 描述
metadata
Kubernetes meta/v1.ObjectMeta
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。
spec
MetricSpec
(可选)

Spec 包含 Metric 的期望状态(来自客户端)。



stableWindow
time.Duration

StableWindow 是处于稳定状态的指标的聚合窗口。

panicWindow
time.Duration

PanicWindow 是需要快速响应的指标的聚合窗口。

scrapeTarget
字符串

ScrapeTarget 是发布指标端点的 K8s 服务。

status
MetricStatus
(可选)

Status 传达 Metric 的观测状态(来自控制器)。

MetricSpec

出现在:Metric

MetricSpec 包含指标收集器操作所需的所有值。

字段 描述
stableWindow
time.Duration

StableWindow 是处于稳定状态的指标的聚合窗口。

panicWindow
time.Duration

PanicWindow 是需要快速响应的指标的聚合窗口。

scrapeTarget
字符串

ScrapeTarget 是发布指标端点的 K8s 服务。

MetricStatus

出现在:Metric

MetricStatus 反映此特定实体的指标收集状态。

字段 描述
状态
knative.dev/pkg/apis/duck/v1.Status

Status 的成员嵌入到此类型中。)

PodAutoscalerSpec

出现在:PodAutoscaler

PodAutoscalerSpec 包含 PodAutoscaler 的期望状态(来自客户端)。

字段 描述
containerConcurrency
int64
(可选)

ContainerConcurrency 指定 Revision 中每个容器允许的最大正在处理(并发)请求数。默认为 0,表示并发不受限制。

scaleTargetRef
Kubernetes core/v1.ObjectReference

ScaleTargetRef 定义了此 PodAutoscaler 负责快速调整大小的 /scale-able 资源。

reachability
ReachabilityType
(可选)

Reachability 指定是否可以访问 ScaleTargetRef(即是否有路由)。默认为 ReachabilityUnknown

protocolType
knative.dev/networking/pkg/apis/networking.ProtocolType

应用层协议。与从修订规范推断出的 ProtocolType 匹配。

PodAutoscalerStatus

出现在:PodAutoscaler

PodAutoscalerStatus 传达 PodAutoscaler 的观测状态(来自控制器)。

字段 描述
状态
knative.dev/pkg/apis/duck/v1.Status

Status 的成员嵌入到此类型中。)

serviceName
字符串

ServiceName 是 K8s 服务名称,用于服务此 PA 扩缩的修订。该服务由此 PA 拥有的 ServerlessService 对象创建和拥有。

metricsServiceName
字符串

MetricsServiceName 是提供修订指标的 K8s 服务名称。该服务由 PA 对象管理。

desiredScale
int32

DesiredScale 显示修订当前期望的副本数量。

actualScale
int32

ActualScale 显示修订的实际副本数量。

PodScalable

PodScalable 是一种 duck 类型,PodAutoscaler 的 ScaleTargetRef 引用的资源必须实现它。它们还必须实现 /scale 子资源以用于基于 /scale 的实现(例如 HPA),但这进一步限制了所引用资源的形状。

字段 描述
metadata
Kubernetes meta/v1.ObjectMeta
请参阅 Kubernetes API 文档中有关 metadata 字段的说明。
spec
PodScalableSpec


replicas
int32
selector
Kubernetes meta/v1.LabelSelector
template
Kubernetes core/v1.PodTemplateSpec
status
PodScalableStatus

PodScalableSpec

出现在:PodScalable

PodScalableSpec 是 PodScalable 期望状态的规范(或者至少是我们共享的部分)。

字段 描述
replicas
int32
selector
Kubernetes meta/v1.LabelSelector
template
Kubernetes core/v1.PodTemplateSpec

PodScalableStatus

出现在:PodScalable

PodScalableStatus 是 PodScalable 的观测状态(或者至少是我们共享的部分)。

字段 描述
replicas
int32

ReachabilityType (string 别名)

出现在:PodAutoscalerSpec

ReachabilityType 是 PodAutoscalerScaleTarget 的可达性不同状态的枚举类型

描述

"Reachable"

ReachabilityReachable 表示 ScaleTarget 可达,即它有一个活动路由。

""

ReachabilityUnknown 表示 ScaleTarget 的可达性未知。当无法确定可达性时使用,例如在激活期间。

"Unreachable"

ReachabilityUnreachable 表示 ScaleTarget 不可达,即它没有活动路由。


serving.knative.dev/v1

v1 软件包包含 Serving v1 API 类型。

资源类型

配置

Configuration 表示 Revision 线性历史的“浮动 HEAD”。用户通过更新 Configuration 的 spec 创建新的 Revision。“最新创建”的修订名称在 status 下可用,与“最新就绪”的修订名称一样。另请参阅:https://github.com/knative/serving/blob/main/docs/spec/overview.md#configuration

字段 描述
apiVersion
字符串
serving.knative.dev/v1
kind
字符串
配置
metadata
Kubernetes meta/v1.ObjectMeta
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。
spec
ConfigurationSpec
(可选)

template
RevisionTemplateSpec
(可选)

Template 包含要创建的 Revision 的最新规范。

status
ConfigurationStatus
(可选)

Revision

Revision 是代码和配置的不可变快照。修订引用一个容器镜像。修订由 Configuration 的更新创建。

另请参阅:https://github.com/knative/serving/blob/main/docs/spec/overview.md#revision

字段 描述
apiVersion
字符串
serving.knative.dev/v1
kind
字符串
Revision
metadata
Kubernetes meta/v1.ObjectMeta
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。
spec
RevisionSpec
(可选)

PodSpec
Kubernetes core/v1.PodSpec

PodSpec 的成员嵌入到此类型中。)

containerConcurrency
int64
(可选)

ContainerConcurrency 指定 Revision 的每个容器允许的最大正在处理(并发)请求数。默认为 0,表示对应用程序的并发不受限制,系统决定自动扩缩器的目标并发。

timeoutSeconds
int64
(可选)

TimeoutSeconds 是请求实例被允许响应请求的最大持续时间(秒)。如果未指定,将提供系统默认值。

responseStartTimeoutSeconds
int64
(可选)

ResponseStartTimeoutSeconds 是请求路由层将等待传送到容器的请求开始发送任何网络流量的最大持续时间(秒)。

idleTimeoutSeconds
int64
(可选)

IdleTimeoutSeconds 是请求在未从用户应用程序接收任何字节的情况下被允许保持打开的最大持续时间(秒)。如果未指定,将提供系统默认值。

status
RevisionStatus
(可选)

Route

Route 负责配置对 Revision 集合的入口。Route 分发流量的一些 Revision 可以通过引用负责创建它们的 Configuration 来指定;在这些情况下,Route 还负责监控 Configuration 的“最新就绪修订”更改,并平稳地推出最新修订。另请参阅:https://github.com/knative/serving/blob/main/docs/spec/overview.md#route

字段 描述
apiVersion
字符串
serving.knative.dev/v1
kind
字符串
Route
metadata
Kubernetes meta/v1.ObjectMeta
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。
spec
RouteSpec
(可选)

Spec 包含 Route 的期望状态(来自客户端)。



traffic
[]TrafficTarget
(可选)

Traffic 指定如何通过修订和配置的集合分发流量。

status
RouteStatus
(可选)

Status 传达 Route 的观测状态(来自控制器)。

服务

Service 作为一个顶层容器,管理实现网络服务的 Route 和 Configuration。Service 的存在是为了提供一个单一的抽象,它可以被访问控制、被理解,并封装软件生命周期决策,例如发布策略和团队资源所有权。Service 仅充当底层 Route 和 Configuration 的协调器(就像 Kubernetes Deployment 协调 ReplicaSet 一样),它的使用是可选的但推荐的。

Service 的控制器将跟踪其拥有的 Configuration 和 Route 的状态,并将其状态和条件反映为自身状态和条件。

另请参阅:https://github.com/knative/serving/blob/main/docs/spec/overview.md#service

字段 描述
apiVersion
字符串
serving.knative.dev/v1
kind
字符串
服务
metadata
Kubernetes meta/v1.ObjectMeta
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。
spec
ServiceSpec
(可选)

ConfigurationSpec
ConfigurationSpec

ConfigurationSpec 的成员嵌入到此类型中。)

ServiceSpec 内联了一个无限制的 ConfigurationSpec。

RouteSpec
RouteSpec

RouteSpec 的成员嵌入到此类型中。)

ServiceSpec 内联 RouteSpec 并通过 webhook 限制/默认其字段。特别是,此 spec 只能引用此 Service 的配置和修订(这也影响默认值)。

status
ServiceStatus
(可选)

ConfigurationSpec

出现在:Configuration, ServiceSpec

ConfigurationSpec 包含 Configuration 的期望状态(来自客户端)。

字段 描述
template
RevisionTemplateSpec
(可选)

Template 包含要创建的 Revision 的最新规范。

ConfigurationStatus

出现在:Configuration

ConfigurationStatus 传达 Configuration 的观测状态(来自控制器)。

字段 描述
状态
knative.dev/pkg/apis/duck/v1.Status

Status 的成员嵌入到此类型中。)

ConfigurationStatusFields
ConfigurationStatusFields

ConfigurationStatusFields 的成员嵌入到此类型中。)

ConfigurationStatusFields

出现在:ConfigurationStatus, ServiceStatus

ConfigurationStatusFields 包含 Configuration 状态中通常不共享的字段。此定义是单独定义的并内联,以便其他类型可以通过 duck typing 轻松使用这些字段。

字段 描述
latestReadyRevisionName
字符串
(可选)

LatestReadyRevisionName 包含从此 Configuration 创建的最新 Revision 的名称,其“Ready”条件已变为“True”。

latestCreatedRevisionName
字符串
(可选)

LatestCreatedRevisionName 是从此 Configuration 创建的最新修订。它可能尚未就绪,为此请使用 LatestReadyRevisionName。

ContainerStatus

出现在:RevisionStatus

ContainerStatus 包含容器名称和镜像摘要值的信息

字段 描述
名称
字符串
imageDigest
字符串

RevisionSpec

出现在:Revision, RevisionTemplateSpec

RevisionSpec 包含 Revision 的期望状态(来自客户端)。

字段 描述
PodSpec
Kubernetes core/v1.PodSpec

PodSpec 的成员嵌入到此类型中。)

containerConcurrency
int64
(可选)

ContainerConcurrency 指定 Revision 的每个容器允许的最大正在处理(并发)请求数。默认为 0,表示对应用程序的并发不受限制,系统决定自动扩缩器的目标并发。

timeoutSeconds
int64
(可选)

TimeoutSeconds 是请求实例被允许响应请求的最大持续时间(秒)。如果未指定,将提供系统默认值。

responseStartTimeoutSeconds
int64
(可选)

ResponseStartTimeoutSeconds 是请求路由层将等待传送到容器的请求开始发送任何网络流量的最大持续时间(秒)。

idleTimeoutSeconds
int64
(可选)

IdleTimeoutSeconds 是请求在未从用户应用程序接收任何字节的情况下被允许保持打开的最大持续时间(秒)。如果未指定,将提供系统默认值。

RevisionStatus

出现在:Revision

RevisionStatus 传达 Revision 的观测状态(来自控制器)。

字段 描述
状态
knative.dev/pkg/apis/duck/v1.Status

Status 的成员嵌入到此类型中。)

logUrl
字符串
(可选)

LogURL 根据控制器配置中指定的修订 URL 模板,指定此特定修订生成的日志 URL。

containerStatuses
[]ContainerStatus
(可选)

ContainerStatuses 是 .Spec.Container[*].Image 中存在的镜像到其各自的摘要及其容器名称的切片。摘要在 Revision 创建期间解析。ContainerStatuses 包含服务和非服务容器的容器名称和镜像摘要。参考:http://bit.ly/image-digests

initContainerStatuses
[]ContainerStatus
(可选)

InitContainerStatuses 是 .Spec.InitContainer[*].Image 中存在的镜像到其各自的摘要及其容器名称的切片。摘要在 Revision 创建期间解析。ContainerStatuses 包含服务和非服务容器的容器名称和镜像摘要。参考:http://bit.ly/image-digests

actualReplicas
int32
(可选)

ActualReplicas 反映运行此修订的就绪 pod 的数量。

desiredReplicas
int32
(可选)

DesiredReplicas 反映运行此修订的期望 pod 的数量。

RevisionTemplateSpec

出现在:ConfigurationSpec

RevisionTemplateSpec 描述了从模板创建 Revision 时应具有的数据。基于:https://github.com/kubernetes/api/blob/e771f807/core/v1/types.go#L3179-L3190

字段 描述
metadata
Kubernetes meta/v1.ObjectMeta
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。
spec
RevisionSpec
(可选)

PodSpec
Kubernetes core/v1.PodSpec

PodSpec 的成员嵌入到此类型中。)

containerConcurrency
int64
(可选)

ContainerConcurrency 指定 Revision 的每个容器允许的最大正在处理(并发)请求数。默认为 0,表示对应用程序的并发不受限制,系统决定自动扩缩器的目标并发。

timeoutSeconds
int64
(可选)

TimeoutSeconds 是请求实例被允许响应请求的最大持续时间(秒)。如果未指定,将提供系统默认值。

responseStartTimeoutSeconds
int64
(可选)

ResponseStartTimeoutSeconds 是请求路由层将等待传送到容器的请求开始发送任何网络流量的最大持续时间(秒)。

idleTimeoutSeconds
int64
(可选)

IdleTimeoutSeconds 是请求在未从用户应用程序接收任何字节的情况下被允许保持打开的最大持续时间(秒)。如果未指定,将提供系统默认值。

RouteSpec

出现在:Route, ServiceSpec

RouteSpec 包含 Route 的期望状态(来自客户端)。

字段 描述
traffic
[]TrafficTarget
(可选)

Traffic 指定如何通过修订和配置的集合分发流量。

RouteStatus

出现在:Route

RouteStatus 传达 Route 的观测状态(来自控制器)。

字段 描述
状态
knative.dev/pkg/apis/duck/v1.Status

Status 的成员嵌入到此类型中。)

RouteStatusFields
RouteStatusFields

RouteStatusFields 的成员嵌入到此类型中。)

RouteStatusFields

出现在:RouteStatus, ServiceStatus

RouteStatusFields 包含 Route 状态中通常不共享的字段。此定义是单独定义的并内联,以便其他类型可以通过 duck typing 轻松使用这些字段。

字段 描述
url
knative.dev/pkg/apis.URL
(可选)

URL 包含将通过提供的流量目标分发流量的 URL。它通常采用 http[s]://{route-name}.{route-namespace}.{cluster-level-suffix} 的形式

address
knative.dev/pkg/apis/duck/v1.Addressable
(可选)

Address 包含 Route 成为事件目标所需的信息。

traffic
[]TrafficTarget
(可选)

Traffic 包含配置的流量分发。这些条目将始终包含 RevisionName 引用。当 ConfigurationName 出现在 spec 中时,这将包含我们最后观察到的 LatestReadyRevisionName。

RoutingState (string 别名)

RoutingState 表示修订在服务路由方面的状态。

描述

"active"

RoutingStateActive 是一个状态,表示修订被 Route 积极引用。

"pending"

RoutingStatePending 是一个状态,表示修订已创建,但在其路由状态确定之前。为了修订垃圾收集的目的,它被视为活动状态。

"reserve"

RoutingStateReserve 是一个状态,表示修订不再被 Route 引用,并且已缩减,但可以快速固定到路由以再次激活。

""

RoutingStateUnset 是路由状态的空值,此状态是意外的。

ServiceSpec

出现在:Service

ServiceSpec 表示 Service 对象的配置。Service 的规范是 Route 和 Configuration 规范的并集。Service 限制了这些字段中可以表达的内容,例如 Route 必须引用提供的 Configuration;但是,这些限制也支持更友好的默认设置,例如 Route 永远不需要 Configuration 名称,并且可以默认为适当的“运行最新”规范。

字段 描述
ConfigurationSpec
ConfigurationSpec

ConfigurationSpec 的成员嵌入到此类型中。)

ServiceSpec 内联了一个无限制的 ConfigurationSpec。

RouteSpec
RouteSpec

RouteSpec 的成员嵌入到此类型中。)

ServiceSpec 内联 RouteSpec 并通过 webhook 限制/默认其字段。特别是,此 spec 只能引用此 Service 的配置和修订(这也影响默认值)。

ServiceStatus

出现在:Service

ServiceStatus 表示 Service 资源的 Status 节。

字段 描述
状态
knative.dev/pkg/apis/duck/v1.Status

Status 的成员嵌入到此类型中。)

ConfigurationStatusFields
ConfigurationStatusFields

ConfigurationStatusFields 的成员嵌入到此类型中。)

除了内联 ConfigurationSpec,我们还内联 ConfigurationStatus 特定的字段。

RouteStatusFields
RouteStatusFields

RouteStatusFields 的成员嵌入到此类型中。)

除了内联 RouteSpec,我们还内联 RouteStatus 特定的字段。

TrafficTarget

出现在:RouteSpec, RouteStatusFields

TrafficTarget 包含 Route 路由表的单个条目。

字段 描述
tag
字符串
(可选)

Tag 可选地用于公开一个专用 URL,以专门引用此目标。

revisionName
字符串
(可选)

将此部分流量发送到的特定修订的 RevisionName。这与 ConfigurationName 互斥。

configurationName
字符串
(可选)

我们将把这部分流量发送到的配置的最新修订的 ConfigurationName。当引用的配置的“status.latestReadyRevisionName”发生更改时,我们将自动将流量从先前的“最新就绪”修订迁移到新的修订。此字段永远不会在 Route 的状态中设置,只会在其 spec 中设置。这与 RevisionName 互斥。

latestRevision
bool
(可选)

LatestRevision 可以选择性地提供,以指示应将配置的最新就绪修订用于此流量目标。如果 RevisionName 为空,则 LatestRevision 必须为 true;如果 RevisionName 非空,则必须为 false。

percent
int64
(可选)

Percent 指示应使用基于百分比的路由,该值表示路由到此 Revision 或 Configuration 的流量百分比。0(零)表示没有流量,100 表示所有流量。当使用基于百分比的路由时,适用以下规则: - 所有百分比值的总和必须等于 100 - 如果未指定,则该特定 Revision 或 Configuration 的 percent 隐含值为零

url
knative.dev/pkg/apis.URL
(可选)

URL 显示用于访问命名流量目标的 URL。URL 显示在状态中,并且不允许在 spec 中使用。URL 必须包含方案(例如 http://)和主机名,但不能包含任何其他内容(例如基本身份验证、URL 路径等)


serving.knative.dev/v1alpha1

v1alpha1 软件包包含 serving api 的 v1alpha1 版本。Api 版本允许更改资源的 API 契约,同时通过支持同一资源的多个并发版本来保持向后兼容性

资源类型

    CannotConvertError

    当字段无法转换时返回 CannotConvertError。

    字段 描述
    Message
    字符串
    字段
    字符串

    serving.knative.dev/v1beta1

    v1beta1 软件包包含 serving api 的 v1beta1 版本。Api 版本允许更改资源的 API 契约,同时通过支持同一资源的多个并发版本来保持向后兼容性

    资源类型

    DomainMapping

    DomainMapping 是从自定义主机名到可寻址对象的映射。

    字段 描述
    apiVersion
    字符串
    serving.knative.dev/v1beta1
    kind
    字符串
    DomainMapping
    metadata
    Kubernetes meta/v1.ObjectMeta
    (可选)

    标准对象的元数据。更多信息:https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata

    请参阅 Kubernetes API 文档中有关 metadata 字段的说明。
    spec
    DomainMappingSpec
    (可选)

    Spec 是 DomainMapping 的期望状态。更多信息:https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status



    ref
    knative.dev/pkg/apis/duck/v1.KReference

    Ref 指定域映射的目标。

    由 Ref 标识的对象必须是可寻址的,其 URL 形式为 {name}.{namespace}.{domain},其中 {domain} 是集群域,{name}{namespace} 是 Kubernetes 服务的名称和命名空间。

    此契约由 Knative 服务和 Knative 路由等 Knative 类型以及 Kubernetes 服务满足。

    tls
    SecretTLS
    (可选)

    TLS 允许 DomainMapping 使用现有 secret 终止 TLS 流量。

    status
    DomainMappingStatus
    (可选)

    Status 是 DomainMapping 的当前状态。更多信息:https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

    CannotConvertError

    当字段无法转换时返回 CannotConvertError。

    字段 描述
    Message
    字符串
    字段
    字符串

    DomainMappingSpec

    出现在:DomainMapping

    DomainMappingSpec 描述了用户希望存在的 DomainMapping。

    字段 描述
    ref
    knative.dev/pkg/apis/duck/v1.KReference

    Ref 指定域映射的目标。

    由 Ref 标识的对象必须是可寻址的,其 URL 形式为 {name}.{namespace}.{domain},其中 {domain} 是集群域,{name}{namespace} 是 Kubernetes 服务的名称和命名空间。

    此契约由 Knative 服务和 Knative 路由等 Knative 类型以及 Kubernetes 服务满足。

    tls
    SecretTLS
    (可选)

    TLS 允许 DomainMapping 使用现有 secret 终止 TLS 流量。

    DomainMappingStatus

    出现在:DomainMapping

    DomainMappingStatus 描述了 DomainMapping 的当前状态。

    字段 描述
    状态
    knative.dev/pkg/apis/duck/v1.Status

    Status 的成员嵌入到此类型中。)

    url
    knative.dev/pkg/apis.URL
    (可选)

    URL 是此 DomainMapping 的 URL。

    address
    knative.dev/pkg/apis/duck/v1.Addressable
    (可选)

    Address 包含 DomainMapping 成为事件目标所需的信息。

    SecretTLS

    出现在:DomainMappingSpec

    SecretTLS 是 TLS SecretName 的包装器。

    字段 描述
    secretName
    字符串

    SecretName 是用于终止 TLS 流量的现有 secret 的名称。


    使用 gen-crd-api-reference-docs 生成。

    我们使用分析和 cookie 来了解网站流量。有关您使用我们网站的信息会与 Google 共享以达到此目的。了解更多。