×

规范

属性 类型 描述

apiVersion

字符串

APIVersion 定义了此对象表示的版本化模式。服务器应将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

字符串

Kind 是一个字符串值,表示此对象表示的 REST 资源。服务器可以从客户端提交请求的端点推断出这一点。无法更新。使用驼峰命名法。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

对象

ServiceSpec 描述了用户在服务上创建的属性。

status

对象

ServiceStatus 表示服务的当前状态。

.spec

描述

ServiceSpec 描述了用户在服务上创建的属性。

类型

对象

属性 类型 描述

allocateLoadBalancerNodePorts

布尔值

allocateLoadBalancerNodePorts 定义是否将为类型为 LoadBalancer 的服务自动分配 NodePorts。默认为“true”。如果集群负载均衡器不依赖于 NodePorts,则可以将其设置为“false”。如果调用者请求特定的 NodePorts(通过指定值),则无论此字段如何,这些请求都将被尊重。此字段可能仅设置用于类型为 LoadBalancer 的服务,如果类型更改为任何其他类型,则将清除此字段。

clusterIP

字符串

clusterIP 是服务的 IP 地址,通常随机分配。如果手动指定地址,且该地址在范围内(根据系统配置),并且未被使用,则该地址将被分配给该服务;否则,服务的创建将失败。除非 type 字段也更改为 ExternalName(这需要此字段为空)或 type 字段从 ExternalName 更改(在这种情况下,可以根据上述描述选择性地指定此字段),否则无法通过更新更改此字段。有效值为“None”、空字符串 (“”) 或有效的 IP 地址。将其设置为“None”将创建一个“headless 服务”(无虚拟 IP),这在首选直接端点连接且不需要代理时非常有用。仅适用于 ClusterIP、NodePort 和 LoadBalancer 类型。如果在创建类型为 ExternalName 的服务时指定此字段,则创建将失败。将服务更新为 ExternalName 类型时,此字段将被清除。更多信息:https://kubernetes.ac.cn/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

clusterIPs

数组 (字符串)

ClusterIPs 是分配给此服务的 IP 地址列表,通常随机分配。如果手动指定地址,且该地址在范围内(根据系统配置),并且未被使用,则该地址将被分配给该服务;否则,服务的创建将失败。除非 type 字段也更改为 ExternalName(这需要此字段为空)或 type 字段从 ExternalName 更改(在这种情况下,可以根据上述描述选择性地指定此字段),否则无法通过更新更改此字段。有效值为“None”、空字符串 (“”) 或有效的 IP 地址。将其设置为“None”将创建一个“headless 服务”(无虚拟 IP),这在首选直接端点连接且不需要代理时非常有用。仅适用于 ClusterIP、NodePort 和 LoadBalancer 类型。如果在创建类型为 ExternalName 的服务时指定此字段,则创建将失败。将服务更新为 ExternalName 类型时,此字段将被清除。如果未指定此字段,它将从 clusterIP 字段初始化。如果指定此字段,客户端必须确保 clusterIPs[0] 和 clusterIP 值相同。

此字段最多可以包含两个条目(双栈 IP,顺序任意)。这些 IP 必须与 ipFamilies 字段的值相对应。clusterIPs 和 ipFamilies 都受 ipFamilyPolicy 字段控制。更多信息:https://kubernetes.ac.cn/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

externalIPs

数组 (字符串)

externalIPs 是集群中节点也将为此服务接受流量的 IP 地址列表。这些 IP 地址不由 Kubernetes 管理。用户负责确保流量到达具有此 IP 的节点。一个常见的例子是非 Kubernetes 系统一部分的外部负载均衡器。

externalName

字符串

externalName 是发现机制将返回作为此服务别名的外部引用(例如,DNS CNAME 记录)。不涉及代理。必须是小写的 RFC-1123 主机名 (https://tools.ietf.org/html/rfc1123),并且需要 type 为“ExternalName”。

externalTrafficPolicy

字符串

externalTrafficPolicy 描述节点如何分发它们在服务的“面向外部”地址(NodePorts、ExternalIPs 和 LoadBalancer IP)之一接收的服务流量。如果设置为“Local”,代理将以假定外部负载均衡器将负责在节点之间平衡服务流量的方式配置服务,因此每个节点仅将流量传递到服务的节点本地端点,而不会伪装客户端源 IP。(错误地发送到没有端点的节点的流量将被丢弃。)默认值“Cluster”使用标准行为,即均匀地路由到所有端点(可能由拓扑和其他功能修改)。请注意,从集群内部发送到外部 IP 或 LoadBalancer IP 的流量将始终获得“Cluster”语义,但从集群内部发送到 NodePort 的客户端可能需要在选择节点时考虑流量策略。

可能的枚举值:- "Cluster" 将流量路由到所有端点。- "Local" 通过仅路由到与接收流量相同的节点上的端点来保留流量的源 IP(如果没有任何本地端点,则丢弃流量)。

healthCheckNodePort

整数

healthCheckNodePort 指定服务的健康检查 nodePort。这仅在 type 设置为 LoadBalancer 且 externalTrafficPolicy 设置为 Local 时适用。如果指定了值,且该值在范围内且未被使用,则将使用该值。如果未指定,则将自动分配一个值。外部系统(例如负载均衡器)可以使用此端口来确定给定节点是否持有此服务的端点。如果在创建不需要此字段的服务时指定此字段,则创建将失败。将服务更新为不再需要此字段(例如更改 type)时,此字段将被清除。此字段一旦设置就不能更新。

internalTrafficPolicy

字符串

InternalTrafficPolicy 描述节点如何分发它们在 ClusterIP 上接收的服务流量。如果设置为“Local”,代理将假定 pod 仅希望与服务在与 pod 相同节点上的端点进行通信,如果没有任何本地端点,则丢弃流量。默认值“Cluster”使用标准行为,即均匀地路由到所有端点(可能由拓扑和其他功能修改)。

可能的枚举值:- "Cluster" 将流量路由到所有端点。- "Local" 将流量仅路由到与客户端 pod 相同节点上的端点(如果没有任何本地端点,则丢弃流量)。

ipFamilies

数组 (字符串)

IPFamilies 是分配给此服务的 IP 族(例如 IPv4、IPv6)列表。此字段通常根据集群配置和 ipFamilyPolicy 字段自动分配。如果手动指定此字段,并且集群中可用请求的族,且 ipFamilyPolicy 允许它,则将使用它;否则,服务的创建将失败。此字段是条件可变的:它允许添加或删除辅助 IP 族,但不允许更改服务的 primary IP 族。有效值为“IPv4”和“IPv6”。此字段仅适用于 ClusterIP、NodePort 和 LoadBalancer 类型的服务,并适用于“headless”服务。将服务更新为 ExternalName 类型时,此字段将被清除。

此字段最多可以包含两个条目(双栈族,顺序任意)。如果指定了这些族,则这些族必须与 clusterIPs 字段的值相对应。clusterIPs 和 ipFamilies 都受 ipFamilyPolicy 字段控制。

ipFamilyPolicy

字符串

IPFamilyPolicy 表示此服务请求或需要的双栈性。如果没有提供值,则此字段将设置为 SingleStack。服务可以是“SingleStack”(单个 IP 族)、“PreferDualStack”(在双栈配置的集群上使用两个 IP 族,或在单栈集群上使用单个 IP 族)或“RequireDualStack”(在双栈配置的集群上使用两个 IP 族,否则失败)。ipFamilies 和 clusterIPs 字段取决于此字段的值。将服务更新为 ExternalName 类型时,此字段将被清除。

可能的枚举值:- "PreferDualStack" 表示当集群配置为双栈时,此服务优先使用双栈。如果集群未配置为双栈,则服务将分配单个 IPFamily。如果在 service.spec.ipFamilies 中未设置 IPFamily,则服务将分配集群上配置的默认 IPFamily - "RequireDualStack" 表示此服务需要双栈。在单栈集群上使用 IPFamilyPolicyRequireDualStack 将导致验证错误。分配给此服务的 IPFamilies(及其顺序)基于 service.spec.ipFamilies。如果未提供 service.spec.ipFamilies,则将根据它们在集群上的配置进行分配。如果 service.spec.ipFamilies 只有一个条目,则 apiserver 将添加备选 IPFamily - "SingleStack" 表示此服务需要单个 IPFamily。分配的 IPFamily 基于集群使用的默认 IPFamily 或 service.spec.ipFamilies 字段标识的 IPFamily。

loadBalancerClass

字符串

loadBalancerClass 是此服务所属的负载均衡器实现的类。如果指定,此字段的值必须是标签样式标识符,带可选前缀,例如“internal-vip”或“example.com/internal-vip”。无前缀名称保留供最终用户使用。只有在服务类型为“LoadBalancer”时才能设置此字段。如果未设置,则使用默认负载均衡器实现,目前这通常通过云提供商集成完成,但应适用于任何默认实现。如果设置了此字段,则假定负载均衡器实现正在监视具有匹配类的服务。任何默认负载均衡器实现(例如云提供商)都应忽略设置此字段的服务。只有在创建或更新服务类型为“LoadBalancer”时才能设置此字段。设置后,无法更改。当服务更新为非“LoadBalancer”类型时,此字段将被清除。

loadBalancerIP

字符串

仅适用于服务类型:LoadBalancer。此功能取决于底层云提供商是否支持在创建负载均衡器时指定 loadBalancerIP。如果云提供商不支持此功能,则将忽略此字段。已弃用:此字段未充分指定,其含义在不同实现中有所不同。使用它不可移植,并且可能不支持双栈。鼓励用户在可用时使用特定于实现的注释。

loadBalancerSourceRanges

数组 (字符串)

如果指定并受平台支持,则这将限制通过云提供商负载均衡器的流量,并将限制为指定的客户端 IP。如果云提供商不支持此功能,则将忽略此字段。“更多信息:https://kubernetes.ac.cn/docs/tasks/access-application-cluster/create-external-load-balancer/

ports

数组

此服务公开的端口列表。更多信息:https://kubernetes.ac.cn/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

ports[]

对象

ServicePort 包含有关服务端口的信息。

publishNotReadyAddresses

布尔值

publishNotReadyAddresses 指示任何处理此服务端点的代理都应忽略任何就绪/未就绪的指示。设置此字段的主要用例是对于 StatefulSet 的无头服务,是为了传播其 Pod 的 SRV DNS 记录以进行对等发现。为服务生成端点和 EndpointSlice 资源的 Kubernetes 控制器将其解释为意味着所有端点都被认为是“就绪的”,即使 Pod 本身未就绪也是如此。仅通过 Endpoints 或 EndpointSlice 资源使用 Kubernetes 生成的端点的代理可以安全地假设此行为。

selector

对象(字符串)

将服务流量路由到其标签键值与该选择器匹配的 Pod。如果为空或不存在,则假定服务具有管理其端点的外部进程,Kubernetes 不会修改它。仅适用于 ClusterIP、NodePort 和 LoadBalancer 类型。如果类型为 ExternalName,则忽略。更多信息:https://kubernetes.ac.cn/docs/concepts/services-networking/service/

sessionAffinity

字符串

支持“ClientIP”和“None”。用于维护会话关联。启用基于客户端 IP 的会话关联。必须为 ClientIP 或 None。默认为 None。更多信息:https://kubernetes.ac.cn/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

可能的枚举值:- "ClientIP" 是基于客户端 IP 的。- "None" - 没有会话关联。

sessionAffinityConfig

对象

SessionAffinityConfig 表示会话关联的配置。

trafficDistribution

字符串

TrafficDistribution 提供了一种表达对如何将流量分发到服务端点的偏好的方法。实现可以使用此字段作为提示,但不保证严格遵守。如果未设置此字段,则实现将应用其默认路由策略。如果设置为“PreferClose”,则实现应优先考虑拓扑上接近的端点(例如,同一区域)。这是一个 alpha 字段,需要启用 ServiceTrafficDistribution 功能。

type

字符串

type 决定了服务的公开方式。默认为 ClusterIP。有效选项为 ExternalName、ClusterIP、NodePort 和 LoadBalancer。“ClusterIP”为负载均衡到端点分配集群内部 IP 地址。端点由选择器确定,如果未指定选择器,则由手动构建 Endpoints 对象或 EndpointSlice 对象确定。如果 clusterIP 为“None”,则不分配虚拟 IP,并且端点作为一组端点而不是虚拟 IP 发布。“NodePort”建立在 ClusterIP 的基础上,并在每个节点上分配一个端口,该端口路由到与 clusterIP 相同的端点。“LoadBalancer”建立在 NodePort 的基础上,并创建一个外部负载均衡器(如果当前云中支持),该负载均衡器路由到与 clusterIP 相同的端点。“ExternalName”将此服务与指定的 externalName 关联。其他一些字段不适用于 ExternalName 服务。更多信息:https://kubernetes.ac.cn/docs/concepts/services-networking/service/#publishing-services-service-types

可能的枚举值:- "ClusterIP" 表示服务只能通过集群 IP 从集群内部访问。- "ExternalName" 表示服务仅由对外部名称的引用组成,kubedns 或等效项将将其作为 CNAME 记录返回,而不涉及任何 Pod 的公开或代理。- "LoadBalancer" 表示服务将通过外部负载均衡器(如果云提供商支持)公开,此外还有“NodePort”类型。- "NodePort" 表示服务将公开在每个节点的一个端口上,此外还有“ClusterIP”类型。

.spec.ports

描述
类型

数组

.spec.ports[]

描述

ServicePort 包含有关服务端口的信息。

类型

对象

必需
  • port

属性 类型 描述

appProtocol

字符串

此端口的应用程序协议。这用作实现提示,以便为其理解的协议提供更丰富的行为。此字段遵循标准 Kubernetes 标签语法。有效值为:

* 未加前缀的协议名称 - 保留用于 IANA 标准服务名称(根据 RFC-6335 和 https://www.iana.org/assignments/service-names)。

* Kubernetes 定义的前缀名称:* 'kubernetes.io/h2c' - 通过明文进行的 HTTP/2 预先了解,如 https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- 中所述 * 'kubernetes.io/ws' - 通过明文的 WebSocket,如 https://www.rfc-editor.org/rfc/rfc6455 中所述 * 'kubernetes.io/wss' - 通过 TLS 的 WebSocket,如 https://www.rfc-editor.org/rfc/rfc6455 中所述

* 其他协议应使用实现定义的前缀名称,例如 mycompany.com/my-custom-protocol。

名称

字符串

此服务内此端口的名称。这必须是 DNS_LABEL。ServiceSpec 中的所有端口必须具有唯一的名称。在考虑服务的端点时,这必须与 EndpointPort 中的“名称”字段匹配。如果此服务上仅定义了一个 ServicePort,则为可选。

nodePort

整数

当类型为 NodePort 或 LoadBalancer 时,在此服务公开的每个节点上的端口。通常由系统分配。如果指定了值,并且在范围内且未使用,则将使用该值,否则操作将失败。如果未指定,则如果此服务需要端口,则将分配一个端口。如果在创建不需要它的服务时指定了此字段,则创建将失败。在将服务更新为不再需要它时(例如,将类型从 NodePort 更改为 ClusterIP),此字段将被清除。更多信息:https://kubernetes.ac.cn/docs/concepts/services-networking/service/#type-nodeport

port

整数

此服务将公开的端口。

协议

字符串

此端口的 IP 协议。支持“TCP”、“UDP”和“SCTP”。默认为 TCP。

可能的枚举值:- "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

targetPort

IntOrString

访问服务目标 Pod 上的端口的数字或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。如果这是一个字符串,它将作为目标 Pod 的容器端口中的命名端口查找。如果未指定此项,则使用“端口”字段的值(标识映射)。此字段对于 clusterIP=None 的服务被忽略,应省略或设置为等于“端口”字段。更多信息:https://kubernetes.ac.cn/docs/concepts/services-networking/service/#defining-a-service

.spec.sessionAffinityConfig

描述

SessionAffinityConfig 表示会话关联的配置。

类型

对象

属性 类型 描述

clientIP

对象

ClientIPConfig 表示基于客户端 IP 的会话关联的配置。

.spec.sessionAffinityConfig.clientIP

描述

ClientIPConfig 表示基于客户端 IP 的会话关联的配置。

类型

对象

属性 类型 描述

timeoutSeconds

整数

timeoutSeconds 指定 ClientIP 类型会话粘性时间的秒数。如果 ServiceAffinity == "ClientIP",则该值必须 >0 && <=86400(持续 1 天)。默认值为 10800(持续 3 小时)。

.status

描述

ServiceStatus 表示服务的当前状态。

类型

对象

属性 类型 描述

conditions

数组 (Condition)

当前服务状态

loadBalancer

对象

LoadBalancerStatus 表示负载均衡器的状态。

.status.loadBalancer

描述

LoadBalancerStatus 表示负载均衡器的状态。

类型

对象

属性 类型 描述

ingress

数组

Ingress 是一个包含负载均衡器入口点的列表。打算用于服务的流量应发送到这些入口点。

ingress[]

对象

LoadBalancerIngress 表示负载均衡器入口点的状态:打算用于服务的流量应发送到入口点。

.status.loadBalancer.ingress

描述

Ingress 是一个包含负载均衡器入口点的列表。打算用于服务的流量应发送到这些入口点。

类型

数组

.status.loadBalancer.ingress[]

描述

LoadBalancerIngress 表示负载均衡器入口点的状态:打算用于服务的流量应发送到入口点。

类型

对象

属性 类型 描述

hostname

字符串

对于基于 DNS 的负载均衡器入口点(通常是 AWS 负载均衡器),会设置 Hostname

ip

字符串

对于基于 IP 的负载均衡器入口点(通常是 GCE 或 OpenStack 负载均衡器),会设置 IP

ipMode

字符串

IPMode 指定负载均衡器 IP 的行为方式,并且只有在指定 ip 字段时才能指定。将其设置为“VIP”表示流量将传递到目标设置为负载均衡器 IP 和端口的节点。将其设置为“Proxy”表示流量将传递到目标设置为节点 IP 和节点端口或 Pod IP 和端口的节点或 Pod。服务实现可以使用此信息来调整流量路由。

ports

数组

Ports 是服务端口记录的列表。如果使用,则服务中定义的每个端口都应在其中有一个条目。

ports[]

对象

.status.loadBalancer.ingress[].ports

描述

Ports 是服务端口记录的列表。如果使用,则服务中定义的每个端口都应在其中有一个条目。

类型

数组

.status.loadBalancer.ingress[].ports[]

描述
类型

对象

必需
  • port

  • 协议

属性 类型 描述

error

字符串

Error 用于记录服务端口的问题。错误的格式应符合以下规则:- 内置错误值应在此文件中指定,并且应使用驼峰命名法 - 云提供商特定的错误值必须具有符合 foo.example.com/CamelCase 格式的名称。

port

整数

Port 是此处记录其状态的服务端口的端口号。

协议

字符串

Protocol 是此处记录其状态的服务端口的协议。支持的值为:“TCP”、“UDP”、“SCTP”。

可能的枚举值:- "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

API 端点

提供以下 API 端点

  • /api/v1/services

    • GET:列出或监视 Service 类型对象

  • /api/v1/watch/services

    • GET:监视对 Service 列表的单个更改。已弃用:改为使用列表操作的“watch”参数。

  • /api/v1/namespaces/{namespace}/services

    • DELETE:删除 Service 集合

    • GET:列出或监视 Service 类型对象

    • POST:创建一个 Service

  • /api/v1/watch/namespaces/{namespace}/services

    • GET:监视对 Service 列表的单个更改。已弃用:改为使用列表操作的“watch”参数。

  • /api/v1/namespaces/{namespace}/services/{name}

    • DELETE:删除一个 Service

    • GET:读取指定的 Service

    • PATCH:部分更新指定的 Service

    • PUT:替换指定的 Service

  • /api/v1/watch/namespaces/{namespace}/services/{name}

    • GET:监视 Service 类型对象的更改。已弃用:改为使用列表操作的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

  • /api/v1/namespaces/{namespace}/services/{name}/status

    • GET:读取指定 Service 的状态

    • PATCH:部分更新指定 Service 的状态

    • PUT:替换指定 Service 的状态

/api/v1/services

HTTP 方法

GET

描述

列出或监视 Service 类型对象

表 1. HTTP 响应
HTTP 代码 响应正文

200 - OK

ServiceList 模式

401 - 未授权

/api/v1/watch/services

HTTP 方法

GET

描述

监视对 Service 列表的单个更改。已弃用:改为使用列表操作的“watch”参数。

表 2. HTTP 响应
HTTP 代码 响应正文

200 - OK

WatchEvent 模式

401 - 未授权

/api/v1/namespaces/{namespace}/services

HTTP 方法

DELETE

描述

删除 Service 集合

表 3. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 4. HTTP 响应
HTTP 代码 响应正文

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出或监视 Service 类型对象

表 5. HTTP 响应
HTTP 代码 响应正文

200 - OK

ServiceList 模式

401 - 未授权

HTTP 方法

POST

描述

创建一个 Service

表 6. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- Ignore:这将忽略任何未知字段,这些字段将从对象中静默删除,并且将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 7. 请求体参数
参数 类型 描述

body

Service 模式

表 8. HTTP 响应
HTTP 代码 响应正文

200 - OK

Service 模式

201 - 已创建

Service 模式

202 - 已接受

Service 模式

401 - 未授权

/api/v1/watch/namespaces/{namespace}/services

HTTP 方法

GET

描述

监视对 Service 列表的单个更改。已弃用:改为使用列表操作的“watch”参数。

表 9. HTTP 响应
HTTP 代码 响应正文

200 - OK

WatchEvent 模式

401 - 未授权

/api/v1/namespaces/{namespace}/services/{name}

表 10. 全局路径参数
参数 类型 描述

名称

字符串

Service 的名称

HTTP 方法

DELETE

描述

删除一个 Service

表 11. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 12. HTTP 响应
HTTP 代码 响应正文

200 - OK

Service 模式

202 - 已接受

Service 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 Service

表 13. HTTP 响应
HTTP 代码 响应正文

200 - OK

Service 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 Service

表 14. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- Ignore:这将忽略任何未知字段,这些字段将从对象中静默删除,并且将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 15. HTTP 响应
HTTP 代码 响应正文

200 - OK

Service 模式

201 - 已创建

Service 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 Service

表 16. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- Ignore:这将忽略任何未知字段,这些字段将从对象中静默删除,并且将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 17. 请求体参数
参数 类型 描述

body

Service 模式

表 18. HTTP 响应
HTTP 代码 响应正文

200 - OK

Service 模式

201 - 已创建

Service 模式

401 - 未授权

/api/v1/watch/namespaces/{namespace}/services/{name}

表 19. 全局路径参数
参数 类型 描述

名称

字符串

Service 的名称

HTTP 方法

GET

描述

监视 Service 对象的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

表 20. HTTP 响应
HTTP 代码 响应正文

200 - OK

WatchEvent 模式

401 - 未授权

/api/v1/namespaces/{namespace}/services/{name}/status

表 21. 全局路径参数
参数 类型 描述

名称

字符串

Service 的名称

HTTP 方法

GET

描述

读取指定 Service 的状态

表 22. HTTP 响应
HTTP 代码 响应正文

200 - OK

Service 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定 Service 的状态

表 23. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- Ignore:这将忽略任何未知字段,这些字段将从对象中静默删除,并且将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 24. HTTP 响应
HTTP 代码 响应正文

200 - OK

Service 模式

201 - 已创建

Service 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定 Service 的状态

表 25. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- Ignore:这将忽略任何未知字段,这些字段将从对象中静默删除,并且将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 26. 请求体参数
参数 类型 描述

body

Service 模式

表 27. HTTP 响应
HTTP 代码 响应正文

200 - OK

Service 模式

201 - 已创建

Service 模式

401 - 未授权