服務 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 |
||||||||
metadata Kubernetes meta/v1.ObjectMeta |
(選用) 請參閱 Kubernetes API 文件,了解 metadata 欄位的內容。 |
||||||||
spec PodAutoscalerSpec |
(選用)
Spec 保存 PodAutoscaler 的期望狀態 (來自用戶端)。
|
||||||||
status PodAutoscalerStatus |
(選用)
Status 傳達 PodAutoscaler 的觀察狀態 (來自控制器)。 |
Metric
Metric 代表一個資源,用於設定指標收集器。
欄位 | 描述 | ||||||
---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
(選用) 請參閱 Kubernetes API 文件,了解 metadata 欄位的內容。 |
||||||
spec MetricSpec |
(選用)
Spec 保存 Metric 的期望狀態 (來自用戶端)。
|
||||||
status MetricStatus |
(選用)
Status 傳達 Metric 的觀察狀態 (來自控制器)。 |
MetricSpec
(出現於:Metric)
MetricSpec 包含指標收集器運作所需的所有值。
欄位 | 描述 |
---|---|
stableWindow time.Duration |
StableWindow 是處於穩定狀態的指標的彙總視窗。 |
panicWindow time.Duration |
PanicWindow 是需要快速反應的指標的彙總視窗。 |
scrapeTarget 字串 |
ScrapeTarget 是發佈指標端點的 K8s 服務。 |
MetricStatus
(出現於:Metric)
MetricStatus 反映此特定實體的指標收集狀態。
欄位 | 描述 |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status |
( |
PodAutoscalerSpec
(出現於:PodAutoscaler)
PodAutoscalerSpec 保存 PodAutoscaler 的期望狀態 (來自用戶端)。
欄位 | 描述 |
---|---|
containerConcurrency int64 |
(選用)
ContainerConcurrency 指定每個 Revision 容器允許的最大同時 (並行) 請求數。預設值為 |
scaleTargetRef Kubernetes core/v1.ObjectReference |
ScaleTargetRef 定義此 PodAutoscaler 負責快速調整大小的 /scale-able 資源。 |
reachability ReachabilityType |
(選用)
Reachability 指定是否可以連線到 |
protocolType knative.dev/networking/pkg/apis/networking.ProtocolType |
應用程式層協定。符合從修訂規格推斷出的 |
PodAutoscalerStatus
(出現於:PodAutoscaler)
PodAutoscalerStatus 傳達 PodAutoscaler 的觀察狀態 (來自控制器)。
欄位 | 描述 |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status |
( |
serviceName 字串 |
ServiceName 是由這個 PA 縮放的修訂版的 K8s 服務名稱。此服務是由這個 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 |
|
||||||
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 是 PodAutoscaler
的 ScaleTarget
的不同可連線狀態的列舉類型
值 | 描述 |
---|---|
"Reachable" |
ReachabilityReachable 表示 |
"" |
ReachabilityUnknown 表示 |
"Unreachable" |
ReachabilityUnreachable 表示 |
serving.knative.dev/v1
套件 v1 包含 Serving v1 API 類型。
資源類型
Configuration
Configuration 代表修訂版線性歷史記錄的「浮動 HEAD」。使用者透過更新 Configuration 的 spec 來建立新的修訂版。最新建立的修訂版名稱可在狀態下找到,最新就緒的修訂版名稱也是如此。另請參閱:https://github.com/knative/serving/blob/main/docs/spec/overview.md#configuration
欄位 | 描述 | ||
---|---|---|---|
apiVersion 字串 |
serving.knative.dev/v1
|
||
kind 字串 |
Configuration |
||
metadata Kubernetes meta/v1.ObjectMeta |
(選用) 請參閱 Kubernetes API 文件,了解 metadata 欄位的內容。 |
||
spec ConfigurationSpec |
(選用)
|
||
status ConfigurationStatus |
(選用) |
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 |
(選用)
|
||||||||||
status RevisionStatus |
(選用) |
Route
Route 負責設定多個 Revision 的入口(ingress)。Route 分發流量到某些 Revision,這些 Revision 可以透過參考負責建立它們的 Configuration 來指定;在這些情況下,Route 還負責監控 Configuration 的「最新就緒 Revision」變更,並順利推出最新 Revision。另請參閱: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 的期望狀態(來自客戶端)。
|
||
status RouteStatus |
(選用)
Status 傳達 Route 的觀察狀態(來自控制器)。 |
Service
Service 作為一個頂層容器,管理實現網路服務的 Route 和 Configuration。Service 的存在是為了提供一個可以進行存取控制、推論,並封裝軟體生命週期決策(如推出策略和團隊資源所有權)的單一抽象。Service 僅作為底層 Route 和 Configuration 的協調器(很像 kubernetes Deployment 協調 ReplicaSets),它的使用是可選的,但建議使用。
Service 的控制器會追蹤其擁有的 Configuration 和 Route 的狀態,並將它們的狀態和條件反映為自己的狀態和條件。
另請參閱:https://github.com/knative/serving/blob/main/docs/spec/overview.md#service
欄位 | 描述 | ||||
---|---|---|---|---|---|
apiVersion 字串 |
serving.knative.dev/v1
|
||||
kind 字串 |
Service |
||||
metadata Kubernetes meta/v1.ObjectMeta |
(選用) 請參閱 Kubernetes API 文件,了解 metadata 欄位的內容。 |
||||
spec ServiceSpec |
(選用)
|
||||
status ServiceStatus |
(選用) |
ConfigurationSpec
(出現於:Configuration、ServiceSpec)
ConfigurationSpec 保存 Configuration 的期望狀態(來自客戶端)。
欄位 | 描述 |
---|---|
template RevisionTemplateSpec |
(選用)
Template 保存要蓋印的修訂版最新規格。 |
ConfigurationStatus
(出現於:Configuration)
ConfigurationStatus 傳達 Configuration 的觀察狀態(來自控制器)。
欄位 | 描述 |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status |
( |
ConfigurationStatusFields ConfigurationStatusFields |
( |
ConfigurationStatusFields
(出現於:ConfigurationStatus、ServiceStatus)
ConfigurationStatusFields 保存 Configuration 狀態中一般不共享的欄位。此定義是分開且內聯的,以便其他類型可以透過鴨子類型輕鬆使用這些欄位。
欄位 | 描述 |
---|---|
latestReadyRevisionName 字串 |
(選用)
LatestReadyRevisionName 保存從此 Configuration 建立的、其「Ready」條件已變為「True」的最新 Revision 的名稱。 |
latestCreatedRevisionName 字串 |
(選用)
LatestCreatedRevisionName 是由此 Configuration 建立的最後一個 Revision。它可能尚未就緒,若要使用已就緒的 Revision 請使用 LatestReadyRevisionName。 |
ContainerStatus
(出現於:RevisionStatus)
ContainerStatus 保存容器名稱和映像摘要值資訊
欄位 | 描述 |
---|---|
name 字串 |
|
imageDigest 字串 |
RevisionSpec
(出現於:Revision、RevisionTemplateSpec)
RevisionSpec 保存 Revision 的期望狀態(來自客戶端)。
欄位 | 描述 |
---|---|
PodSpec Kubernetes core/v1.PodSpec |
( |
containerConcurrency int64 |
(選用)
ContainerConcurrency 指定 Revision 的每個容器允許的最大同時(並行)請求數。預設值為 |
timeoutSeconds int64 |
(選用)
TimeoutSeconds 是允許請求實例回應請求的最長持續時間(以秒為單位)。如果未指定,將提供系統預設值。 |
responseStartTimeoutSeconds int64 |
(選用)
ResponseStartTimeoutSeconds 是請求路由層等待傳遞到容器的請求開始發送任何網路流量的最長持續時間(以秒為單位)。 |
idleTimeoutSeconds int64 |
(選用)
IdleTimeoutSeconds 是在未從使用者的應用程式接收任何位元組的情況下,允許請求保持開啟的最長持續時間(以秒為單位)。如果未指定,將提供系統預設值。 |
RevisionStatus
(出現於:Revision)
RevisionStatus 傳達 Revision 的觀察狀態(來自控制器)。
欄位 | 描述 |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status |
( |
logUrl 字串 |
(選用)
LogURL 指定根據控制器設定中指定的 Revision URL 範本為此特定 Revision 生成的記錄 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 反映正在執行此 Revision 的就緒 Pod 數量。 |
desiredReplicas int32 |
(選用)
DesiredReplicas 反映執行此 Revision 的所需 Pod 數量。 |
RevisionTemplateSpec
(出現於:ConfigurationSpec)
RevisionTemplateSpec 描述從範本建立 Revision 時,Revision 應具有的資料。基於:https://github.com/kubernetes/api/blob/e771f807/core/v1/types.go#L3179-L3190
欄位 | 描述 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
(選用) 請參閱 Kubernetes API 文件,了解 metadata 欄位的內容。 |
||||||||||
spec RevisionSpec |
(選用)
|
RouteSpec
(出現於:Route、ServiceSpec)
RouteSpec 保存 Route 的期望狀態(來自客戶端)。
欄位 | 描述 |
---|---|
traffic []TrafficTarget |
(選用)
Traffic 指定如何在多個 Revision 和 Configuration 上分發流量。 |
RouteStatus
(出現於:Route)
RouteStatus 傳達 Route 的觀察狀態(來自控制器)。
欄位 | 描述 |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status |
( |
RouteStatusFields RouteStatusFields |
( |
RouteStatusFields
(出現於:RouteStatus、ServiceStatus)
RouteStatusFields 保存 Route 狀態中一般不共享的欄位。此定義是分開且內聯的,以便其他類型可以透過鴨子類型輕鬆使用這些欄位。
欄位 | 描述 |
---|---|
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 表示 Revision 在服務路由方面的狀態。
值 | 描述 |
---|---|
"active" |
RoutingStateActive 是 Revision 的狀態,該 Revision 會被 Route 主動參考。 |
"pending" |
RoutingStatePending 是在 Revision 建立之後,但在確定其路由狀態之前的狀態。為了 Revision 垃圾收集的目的,它被視為 active。 |
"reserve" |
RoutingStateReserve 是 Revision 的狀態,該 Revision 不再被 Route 參考,並且已縮減規模,但可能會快速固定到路由,再次使其處於 active 狀態。 |
"" |
RoutingStateUnset 是路由狀態的空值,此狀態是預期外的。 |
ServiceSpec
(出現於:Service)
ServiceSpec 表示 Service 物件的設定。Service 的規格是 Route 和 Configuration 的規格的聯合。Service 會限制可以在這些欄位中表達的內容,例如,Route 必須參考提供的 Configuration;但是,這些限制也允許更友好的預設值,例如,Route 永遠不需要 Configuration 名稱,並且可以預設為適當的「執行最新」規格。
欄位 | 描述 |
---|---|
ConfigurationSpec ConfigurationSpec |
( ServiceSpec 内聯一個不受限制的 ConfigurationSpec。 |
RouteSpec RouteSpec |
( ServiceSpec 内聯 RouteSpec,並透過 webhook 限制/預設其欄位。特別是,此 spec 只能參考此 Service 的 Configuration 和 Revision(這也會影響預設值)。 |
ServiceStatus
(出現於:Service)
ServiceStatus 表示 Service 資源的 Status stanza。
欄位 | 描述 |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status |
( |
ConfigurationStatusFields ConfigurationStatusFields |
( 除了內聯 ConfigurationSpec 外,我們還內聯特定於 ConfigurationStatus 的欄位。 |
RouteStatusFields RouteStatusFields |
( 除了內聯 RouteSpec 外,我們還內聯特定於 RouteStatus 的欄位。 |
TrafficTarget
(出現於:RouteSpec、RouteStatusFields)
TrafficTarget 保存 Route 的路由表中的單一條目。
欄位 | 描述 |
---|---|
tag 字串 |
(選用)
Tag 可選擇性地用於公開專用 URL,以專門參考此目標。 |
revisionName 字串 |
(選用)
要將此部分流量傳送到其中的特定 Revision 的 RevisionName。這與 ConfigurationName 互斥。 |
configurationName 字串 |
(選用)
要將此部分流量傳送到其中的 Configuration 的最新 Revision 的 ConfigurationName。當參考的 Configuration 的「status.latestReadyRevisionName」變更時,我們會自動將流量從先前的「最新就緒」Revision 移轉到新的 Revision。此欄位永遠不會在 Route 的狀態中設定,僅在其 spec 中設定。這與 RevisionName 互斥。 |
latestRevision bool |
(選用)
可以選擇性地提供 LatestRevision,以表示應將 Configuration 的最新就緒 Revision 用於此流量目標。如果 RevisionName 為空,則必須提供 LatestRevision 為 true;當 RevisionName 不為空時,必須為 false。 |
percent int64 |
(選用)
「百分比」表示應使用基於百分比的路由,且該值表示要路由到此修訂版本或配置的流量百分比。 |
url knative.dev/pkg/apis.URL |
(選用)
URL 顯示用於存取具名流量目標的 URL。URL 會顯示在狀態中,且不允許在規範中出現。URL 必須包含協定 (例如 http://) 和主機名稱,但不得包含任何其他內容 (例如基本身份驗證、URL 路徑等)。 |
serving.knative.dev/v1alpha1
套件 v1alpha1 包含 serving API 的 v1alpha1 版本。API 版本允許在保持向後相容性的同時,透過支援相同資源的多個並行版本來變更資源的 API 合約。
資源類型
CannotConvertError
當欄位無法轉換時,會傳回 CannotConvertError。
欄位 | 描述 |
---|---|
訊息 字串 |
|
欄位 字串 |
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
|
||||
status DomainMappingStatus |
(選用)
Status 是 DomainMapping 的目前狀態。更多資訊:https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
CannotConvertError
當欄位無法轉換時,會傳回 CannotConvertError。
欄位 | 描述 |
---|---|
訊息 字串 |
|
欄位 字串 |
DomainMappingSpec
(出現於:DomainMapping)
DomainMappingSpec 描述使用者希望存在的 DomainMapping。
欄位 | 描述 |
---|---|
ref knative.dev/pkg/apis/duck/v1.KReference |
Ref 指定 Domain Mapping 的目標。 Ref 所識別的物件必須是一個可定址物件,其 URL 格式為 此合約由 Knative 類型(如 Knative 服務和 Knative 路由)以及 Kubernetes 服務滿足。 |
tls SecretTLS |
(選用)
TLS 允許 DomainMapping 使用現有的密鑰終止 TLS 流量。 |
DomainMappingStatus
(出現於:DomainMapping)
DomainMappingStatus 描述 DomainMapping 的目前狀態。
欄位 | 描述 |
---|---|
Status knative.dev/pkg/apis/duck/v1.Status |
( |
url knative.dev/pkg/apis.URL |
(選用)
URL 是此 DomainMapping 的 URL。 |
address knative.dev/pkg/apis/duck/v1.Addressable |
(選用)
Address 保有 DomainMapping 作為事件目標所需資訊。 |
SecretTLS
(出現於:DomainMappingSpec)
TLS SecretName 的 SecretTLS 包裝器。
欄位 | 描述 |
---|---|
secretName 字串 |
SecretName 是用於終止 TLS 流量的現有密鑰名稱。 |
使用 gen-crd-api-reference-docs
產生。