|
|
|
@@ -89,6 +89,11 @@ ServiceSpec describes the attributes that a user creates on a service.
|
|
|
|
|
- **ports.protocol** (string)
|
|
|
|
|
|
|
|
|
|
The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". Default is TCP.
|
|
|
|
|
|
|
|
|
|
Possible enum values:
|
|
|
|
|
- `"SCTP"` is the SCTP protocol.
|
|
|
|
|
- `"TCP"` is the TCP protocol.
|
|
|
|
|
- `"UDP"` is the UDP protocol.
|
|
|
|
|
|
|
|
|
|
- **ports.name** (string)
|
|
|
|
|
|
|
|
|
@@ -105,18 +110,24 @@ ServiceSpec describes the attributes that a user creates on a service.
|
|
|
|
|
- **type** (string)
|
|
|
|
|
|
|
|
|
|
type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. "ExternalName" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
|
|
|
|
|
|
|
|
|
|
Possible enum values:
|
|
|
|
|
- `"ClusterIP"` means a service will only be accessible inside the cluster, via the cluster IP.
|
|
|
|
|
- `"ExternalName"` means a service consists of only a reference to an external name that kubedns or equivalent will return as a CNAME record, with no exposing or proxying of any pods involved.
|
|
|
|
|
- `"LoadBalancer"` means a service will be exposed via an external load balancer (if the cloud provider supports it), in addition to 'NodePort' type.
|
|
|
|
|
- `"NodePort"` means a service will be exposed on one port of every node, in addition to 'ClusterIP' type.
|
|
|
|
|
|
|
|
|
|
- **ipFamilies** ([]string)
|
|
|
|
|
|
|
|
|
|
*Atomic: will be replaced during a merge*
|
|
|
|
|
|
|
|
|
|
IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service, and is gated by the "IPv6DualStack" feature gate. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are "IPv4" and "IPv6". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to "headless" services. This field will be wiped when updating a Service to type ExternalName.
|
|
|
|
|
IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are "IPv4" and "IPv6". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to "headless" services. This field will be wiped when updating a Service to type ExternalName.
|
|
|
|
|
|
|
|
|
|
This field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.
|
|
|
|
|
|
|
|
|
|
- **ipFamilyPolicy** (string)
|
|
|
|
|
|
|
|
|
|
IPFamilyPolicy represents the dual-stack-ness requested or required by this Service, and is gated by the "IPv6DualStack" feature gate. If there is no value provided, then this field will be set to SingleStack. Services can be "SingleStack" (a single IP family), "PreferDualStack" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or "RequireDualStack" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.
|
|
|
|
|
IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be "SingleStack" (a single IP family), "PreferDualStack" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or "RequireDualStack" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.
|
|
|
|
|
|
|
|
|
|
- **clusterIP** (string)
|
|
|
|
|
|
|
|
|
@@ -128,7 +139,7 @@ ServiceSpec describes the attributes that a user creates on a service.
|
|
|
|
|
|
|
|
|
|
ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are "None", empty string (""), or a valid IP address. Setting this to "None" makes a "headless service" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value.
|
|
|
|
|
|
|
|
|
|
Unless the "IPv6DualStack" feature gate is enabled, this field is limited to one value, which must be the same as the clusterIP field. If the feature gate is enabled, this field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
|
|
|
|
|
This field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
|
|
|
|
|
|
|
|
|
|
- **externalIPs** ([]string)
|
|
|
|
|
|
|
|
|
@@ -137,6 +148,10 @@ ServiceSpec describes the attributes that a user creates on a service.
|
|
|
|
|
- **sessionAffinity** (string)
|
|
|
|
|
|
|
|
|
|
Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
|
|
|
|
|
|
|
|
|
|
Possible enum values:
|
|
|
|
|
- `"ClientIP"` is the Client IP based.
|
|
|
|
|
- `"None"` - no session affinity.
|
|
|
|
|
|
|
|
|
|
- **loadBalancerIP** (string)
|
|
|
|
|
|
|
|
|
@@ -157,6 +172,10 @@ ServiceSpec describes the attributes that a user creates on a service.
|
|
|
|
|
- **externalTrafficPolicy** (string)
|
|
|
|
|
|
|
|
|
|
externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. "Local" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. "Cluster" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.
|
|
|
|
|
|
|
|
|
|
Possible enum values:
|
|
|
|
|
- `"Cluster"` specifies node-global (legacy) behavior.
|
|
|
|
|
- `"Local"` specifies node-local endpoints behavior.
|
|
|
|
|
|
|
|
|
|
- **internalTrafficPolicy** (string)
|
|
|
|
|
|
|
|
|
@@ -278,6 +297,11 @@ ServiceStatus represents the current status of a service.
|
|
|
|
|
- **loadBalancer.ingress.ports.protocol** (string), required
|
|
|
|
|
|
|
|
|
|
Protocol is the protocol of the service port of which status is recorded here The supported values are: "TCP", "UDP", "SCTP"
|
|
|
|
|
|
|
|
|
|
Possible enum values:
|
|
|
|
|
- `"SCTP"` is the SCTP protocol.
|
|
|
|
|
- `"TCP"` is the TCP protocol.
|
|
|
|
|
- `"UDP"` is the UDP protocol.
|
|
|
|
|
|
|
|
|
|
- **loadBalancer.ingress.ports.error** (string)
|
|
|
|
|
|
|
|
|
@@ -561,6 +585,11 @@ POST /api/v1/namespaces/{namespace}/services
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#fieldManager" >}}">fieldManager</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **fieldValidation** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#fieldValidation" >}}">fieldValidation</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **pretty** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#pretty" >}}">pretty</a>
|
|
|
|
@@ -613,6 +642,11 @@ PUT /api/v1/namespaces/{namespace}/services/{name}
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#fieldManager" >}}">fieldManager</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **fieldValidation** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#fieldValidation" >}}">fieldValidation</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **pretty** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#pretty" >}}">pretty</a>
|
|
|
|
@@ -663,6 +697,11 @@ PUT /api/v1/namespaces/{namespace}/services/{name}/status
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#fieldManager" >}}">fieldManager</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **fieldValidation** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#fieldValidation" >}}">fieldValidation</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **pretty** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#pretty" >}}">pretty</a>
|
|
|
|
@@ -713,6 +752,11 @@ PATCH /api/v1/namespaces/{namespace}/services/{name}
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#fieldManager" >}}">fieldManager</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **fieldValidation** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#fieldValidation" >}}">fieldValidation</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **force** (*in query*): boolean
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#force" >}}">force</a>
|
|
|
|
@@ -768,6 +812,11 @@ PATCH /api/v1/namespaces/{namespace}/services/{name}/status
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#fieldManager" >}}">fieldManager</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **fieldValidation** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#fieldValidation" >}}">fieldValidation</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **force** (*in query*): boolean
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#force" >}}">force</a>
|
|
|
|
@@ -837,9 +886,92 @@ DELETE /api/v1/namespaces/{namespace}/services/{name}
|
|
|
|
|
#### Response
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 (<a href="{{< ref "../common-definitions/status#Status" >}}">Status</a>): OK
|
|
|
|
|
200 (<a href="{{< ref "../service-resources/service-v1#Service" >}}">Service</a>): OK
|
|
|
|
|
|
|
|
|
|
202 (<a href="{{< ref "../common-definitions/status#Status" >}}">Status</a>): Accepted
|
|
|
|
|
202 (<a href="{{< ref "../service-resources/service-v1#Service" >}}">Service</a>): Accepted
|
|
|
|
|
|
|
|
|
|
401: Unauthorized
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### `deletecollection` delete collection of Service
|
|
|
|
|
|
|
|
|
|
#### HTTP Request
|
|
|
|
|
|
|
|
|
|
DELETE /api/v1/namespaces/{namespace}/services
|
|
|
|
|
|
|
|
|
|
#### Parameters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **namespace** (*in path*): string, required
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#namespace" >}}">namespace</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **body**: <a href="{{< ref "../common-definitions/delete-options#DeleteOptions" >}}">DeleteOptions</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **continue** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#continue" >}}">continue</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **dryRun** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#dryRun" >}}">dryRun</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **fieldSelector** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#fieldSelector" >}}">fieldSelector</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **gracePeriodSeconds** (*in query*): integer
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#gracePeriodSeconds" >}}">gracePeriodSeconds</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **labelSelector** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#labelSelector" >}}">labelSelector</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **limit** (*in query*): integer
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#limit" >}}">limit</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **pretty** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#pretty" >}}">pretty</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **propagationPolicy** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#propagationPolicy" >}}">propagationPolicy</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **resourceVersion** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#resourceVersion" >}}">resourceVersion</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **resourceVersionMatch** (*in query*): string
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#resourceVersionMatch" >}}">resourceVersionMatch</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **timeoutSeconds** (*in query*): integer
|
|
|
|
|
|
|
|
|
|
<a href="{{< ref "../common-parameters/common-parameters#timeoutSeconds" >}}">timeoutSeconds</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### Response
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 (<a href="{{< ref "../common-definitions/status#Status" >}}">Status</a>): OK
|
|
|
|
|
|
|
|
|
|
401: Unauthorized
|
|
|
|
|
|
|
|
|
|