Serving API
软件包
- autoscaling.internal.knative.dev/v1alpha1
- serving.knative.dev/v1
- serving.knative.dev/v1alpha1
- serving.knative.dev/v1beta1
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 |
||||||||
metadataKubernetes meta/v1.ObjectMeta |
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。 |
||||||||
specPodAutoscalerSpec |
(可选)
Spec 包含 PodAutoscaler 的期望状态(来自客户端)。
|
||||||||
statusPodAutoscalerStatus |
(可选)
Status 传达 PodAutoscaler 的观测状态(来自控制器)。 |
Metric
Metric 表示用于配置指标收集器的资源。
| 字段 | 描述 | ||||||
|---|---|---|---|---|---|---|---|
metadataKubernetes meta/v1.ObjectMeta |
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。 |
||||||
specMetricSpec |
(可选)
Spec 包含 Metric 的期望状态(来自客户端)。
|
||||||
statusMetricStatus |
(可选)
Status 传达 Metric 的观测状态(来自控制器)。 |
MetricSpec
(出现在:Metric)
MetricSpec 包含指标收集器操作所需的所有值。
| 字段 | 描述 |
|---|---|
stableWindowtime.Duration |
StableWindow 是处于稳定状态的指标的聚合窗口。 |
panicWindowtime.Duration |
PanicWindow 是需要快速响应的指标的聚合窗口。 |
scrapeTarget字符串 |
ScrapeTarget 是发布指标端点的 K8s 服务。 |
MetricStatus
(出现在:Metric)
MetricStatus 反映此特定实体的指标收集状态。
| 字段 | 描述 |
|---|---|
状态knative.dev/pkg/apis/duck/v1.Status |
( |
PodAutoscalerSpec
(出现在:PodAutoscaler)
PodAutoscalerSpec 包含 PodAutoscaler 的期望状态(来自客户端)。
| 字段 | 描述 |
|---|---|
containerConcurrencyint64 |
(可选)
ContainerConcurrency 指定 Revision 中每个容器允许的最大正在处理(并发)请求数。默认为 |
scaleTargetRefKubernetes core/v1.ObjectReference |
ScaleTargetRef 定义了此 PodAutoscaler 负责快速调整大小的 /scale-able 资源。 |
reachabilityReachabilityType |
(可选)
Reachability 指定是否可以访问 |
protocolTypeknative.dev/networking/pkg/apis/networking.ProtocolType |
应用层协议。与从修订规范推断出的 |
PodAutoscalerStatus
(出现在:PodAutoscaler)
PodAutoscalerStatus 传达 PodAutoscaler 的观测状态(来自控制器)。
| 字段 | 描述 |
|---|---|
状态knative.dev/pkg/apis/duck/v1.Status |
( |
serviceName字符串 |
ServiceName 是 K8s 服务名称,用于服务此 PA 扩缩的修订。该服务由此 PA 拥有的 ServerlessService 对象创建和拥有。 |
metricsServiceName字符串 |
MetricsServiceName 是提供修订指标的 K8s 服务名称。该服务由 PA 对象管理。 |
desiredScaleint32 |
DesiredScale 显示修订当前期望的副本数量。 |
actualScaleint32 |
ActualScale 显示修订的实际副本数量。 |
PodScalable
PodScalable 是一种 duck 类型,PodAutoscaler 的 ScaleTargetRef 引用的资源必须实现它。它们还必须实现 /scale 子资源以用于基于 /scale 的实现(例如 HPA),但这进一步限制了所引用资源的形状。
| 字段 | 描述 | ||||||
|---|---|---|---|---|---|---|---|
metadataKubernetes meta/v1.ObjectMeta |
请参阅 Kubernetes API 文档中有关 metadata 字段的说明。 |
||||||
specPodScalableSpec |
|
||||||
statusPodScalableStatus |
PodScalableSpec
(出现在:PodScalable)
PodScalableSpec 是 PodScalable 期望状态的规范(或者至少是我们共享的部分)。
| 字段 | 描述 |
|---|---|
replicasint32 |
|
selectorKubernetes meta/v1.LabelSelector |
|
templateKubernetes core/v1.PodTemplateSpec |
PodScalableStatus
(出现在:PodScalable)
PodScalableStatus 是 PodScalable 的观测状态(或者至少是我们共享的部分)。
| 字段 | 描述 |
|---|---|
replicasint32 |
ReachabilityType (string 别名)
(出现在:PodAutoscalerSpec)
ReachabilityType 是 PodAutoscaler 的 ScaleTarget 的可达性不同状态的枚举类型
| 值 | 描述 |
|---|---|
"Reachable" |
ReachabilityReachable 表示 |
"" |
ReachabilityUnknown 表示 |
"Unreachable" |
ReachabilityUnreachable 表示 |
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字符串 |
配置 |
||
metadataKubernetes meta/v1.ObjectMeta |
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。 |
||
specConfigurationSpec |
(可选)
|
||
statusConfigurationStatus |
(可选) |
Revision
Revision 是代码和配置的不可变快照。修订引用一个容器镜像。修订由 Configuration 的更新创建。
另请参阅:https://github.com/knative/serving/blob/main/docs/spec/overview.md#revision
| 字段 | 描述 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
apiVersion字符串 |
serving.knative.dev/v1
|
||||||||||
kind字符串 |
Revision |
||||||||||
metadataKubernetes meta/v1.ObjectMeta |
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。 |
||||||||||
specRevisionSpec |
(可选)
|
||||||||||
statusRevisionStatus |
(可选) |
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 |
||
metadataKubernetes meta/v1.ObjectMeta |
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。 |
||
specRouteSpec |
(可选)
Spec 包含 Route 的期望状态(来自客户端)。
|
||
statusRouteStatus |
(可选)
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字符串 |
服务 |
||||
metadataKubernetes meta/v1.ObjectMeta |
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。 |
||||
specServiceSpec |
(可选)
|
||||
statusServiceStatus |
(可选) |
ConfigurationSpec
(出现在:Configuration, ServiceSpec)
ConfigurationSpec 包含 Configuration 的期望状态(来自客户端)。
| 字段 | 描述 |
|---|---|
templateRevisionTemplateSpec |
(可选)
Template 包含要创建的 Revision 的最新规范。 |
ConfigurationStatus
(出现在:Configuration)
ConfigurationStatus 传达 Configuration 的观测状态(来自控制器)。
| 字段 | 描述 |
|---|---|
状态knative.dev/pkg/apis/duck/v1.Status |
( |
ConfigurationStatusFieldsConfigurationStatusFields |
( |
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 的期望状态(来自客户端)。
| 字段 | 描述 |
|---|---|
PodSpecKubernetes core/v1.PodSpec |
( |
containerConcurrencyint64 |
(可选)
ContainerConcurrency 指定 Revision 的每个容器允许的最大正在处理(并发)请求数。默认为 |
timeoutSecondsint64 |
(可选)
TimeoutSeconds 是请求实例被允许响应请求的最大持续时间(秒)。如果未指定,将提供系统默认值。 |
responseStartTimeoutSecondsint64 |
(可选)
ResponseStartTimeoutSeconds 是请求路由层将等待传送到容器的请求开始发送任何网络流量的最大持续时间(秒)。 |
idleTimeoutSecondsint64 |
(可选)
IdleTimeoutSeconds 是请求在未从用户应用程序接收任何字节的情况下被允许保持打开的最大持续时间(秒)。如果未指定,将提供系统默认值。 |
RevisionStatus
(出现在:Revision)
RevisionStatus 传达 Revision 的观测状态(来自控制器)。
| 字段 | 描述 |
|---|---|
状态knative.dev/pkg/apis/duck/v1.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 |
actualReplicasint32 |
(可选)
ActualReplicas 反映运行此修订的就绪 pod 的数量。 |
desiredReplicasint32 |
(可选)
DesiredReplicas 反映运行此修订的期望 pod 的数量。 |
RevisionTemplateSpec
(出现在:ConfigurationSpec)
RevisionTemplateSpec 描述了从模板创建 Revision 时应具有的数据。基于:https://github.com/kubernetes/api/blob/e771f807/core/v1/types.go#L3179-L3190
| 字段 | 描述 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
metadataKubernetes meta/v1.ObjectMeta |
(可选)请参阅 Kubernetes API 文档中有关 metadata 字段的说明。 |
||||||||||
specRevisionSpec |
(可选)
|
RouteSpec
(出现在:Route, ServiceSpec)
RouteSpec 包含 Route 的期望状态(来自客户端)。
| 字段 | 描述 |
|---|---|
traffic[]TrafficTarget |
(可选)
Traffic 指定如何通过修订和配置的集合分发流量。 |
RouteStatus
(出现在:Route)
RouteStatus 传达 Route 的观测状态(来自控制器)。
| 字段 | 描述 |
|---|---|
状态knative.dev/pkg/apis/duck/v1.Status |
( |
RouteStatusFieldsRouteStatusFields |
( |
RouteStatusFields
(出现在:RouteStatus, ServiceStatus)
RouteStatusFields 包含 Route 状态中通常不共享的字段。此定义是单独定义的并内联,以便其他类型可以通过 duck typing 轻松使用这些字段。
| 字段 | 描述 |
|---|---|
urlknative.dev/pkg/apis.URL |
(可选)
URL 包含将通过提供的流量目标分发流量的 URL。它通常采用 http[s]://{route-name}.{route-namespace}.{cluster-level-suffix} 的形式 |
addressknative.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 名称,并且可以默认为适当的“运行最新”规范。
| 字段 | 描述 |
|---|---|
ConfigurationSpecConfigurationSpec |
( ServiceSpec 内联了一个无限制的 ConfigurationSpec。 |
RouteSpecRouteSpec |
( ServiceSpec 内联 RouteSpec 并通过 webhook 限制/默认其字段。特别是,此 spec 只能引用此 Service 的配置和修订(这也影响默认值)。 |
ServiceStatus
(出现在:Service)
ServiceStatus 表示 Service 资源的 Status 节。
| 字段 | 描述 |
|---|---|
状态knative.dev/pkg/apis/duck/v1.Status |
( |
ConfigurationStatusFieldsConfigurationStatusFields |
( 除了内联 ConfigurationSpec,我们还内联 ConfigurationStatus 特定的字段。 |
RouteStatusFieldsRouteStatusFields |
( 除了内联 RouteSpec,我们还内联 RouteStatus 特定的字段。 |
TrafficTarget
(出现在:RouteSpec, RouteStatusFields)
TrafficTarget 包含 Route 路由表的单个条目。
| 字段 | 描述 |
|---|---|
tag字符串 |
(可选)
Tag 可选地用于公开一个专用 URL,以专门引用此目标。 |
revisionName字符串 |
(可选)
将此部分流量发送到的特定修订的 RevisionName。这与 ConfigurationName 互斥。 |
configurationName字符串 |
(可选)
我们将把这部分流量发送到的配置的最新修订的 ConfigurationName。当引用的配置的“status.latestReadyRevisionName”发生更改时,我们将自动将流量从先前的“最新就绪”修订迁移到新的修订。此字段永远不会在 Route 的状态中设置,只会在其 spec 中设置。这与 RevisionName 互斥。 |
latestRevisionbool |
(可选)
LatestRevision 可以选择性地提供,以指示应将配置的最新就绪修订用于此流量目标。如果 RevisionName 为空,则 LatestRevision 必须为 true;如果 RevisionName 非空,则必须为 false。 |
percentint64 |
(可选)
Percent 指示应使用基于百分比的路由,该值表示路由到此 Revision 或 Configuration 的流量百分比。 |
urlknative.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 |
||||
metadataKubernetes meta/v1.ObjectMeta |
(可选)
标准对象的元数据。更多信息:https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata 请参阅 Kubernetes API 文档中有关metadata 字段的说明。 |
||||
specDomainMappingSpec |
(可选)
Spec 是 DomainMapping 的期望状态。更多信息:https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
||||
statusDomainMappingStatus |
(可选)
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。
| 字段 | 描述 |
|---|---|
refknative.dev/pkg/apis/duck/v1.KReference |
Ref 指定域映射的目标。 由 Ref 标识的对象必须是可寻址的,其 URL 形式为 此契约由 Knative 服务和 Knative 路由等 Knative 类型以及 Kubernetes 服务满足。 |
tlsSecretTLS |
(可选)
TLS 允许 DomainMapping 使用现有 secret 终止 TLS 流量。 |
DomainMappingStatus
(出现在:DomainMapping)
DomainMappingStatus 描述了 DomainMapping 的当前状态。
| 字段 | 描述 |
|---|---|
状态knative.dev/pkg/apis/duck/v1.Status |
( |
urlknative.dev/pkg/apis.URL |
(可选)
URL 是此 DomainMapping 的 URL。 |
addressknative.dev/pkg/apis/duck/v1.Addressable |
(可选)
Address 包含 DomainMapping 成为事件目标所需的信息。 |
SecretTLS
(出现在:DomainMappingSpec)
SecretTLS 是 TLS SecretName 的包装器。
| 字段 | 描述 |
|---|---|
secretName字符串 |
SecretName 是用于终止 TLS 流量的现有 secret 的名称。 |
使用 gen-crd-api-reference-docs 生成。