Kubernetes API
Number of APIs: 847
The Kubernetes API
The core of Kubernetes' control plane is the API server. The API server exposes an HTTP API that lets end users, different parts of your cluster, and external components communicate with one another.
The Kubernetes API lets you query and manipulate the state of API objects in Kubernetes (for example: Pods, Namespaces, ConfigMaps, and Events).
Most operations can be performed through the kubectl command-line interface or other command-line tools, such as kubeadm, which in turn use the API. However, you can also access the API directly using REST calls.
Consider using one of the client libraries if you are writing an application using the Kubernetes API.
API groups and versioning
To make it easier to eliminate fields or restructure resource representations, Kubernetes supports multiple API versions, each at a different API path, such as /api/v1
or /apis/rbac.authorization.k8s.io/v1alpha1
.
Versioning is done at the API level rather than at the resource or field level to ensure that the API presents a clear, consistent view of system resources and behavior, and to enable controlling access to end-of-life and/or experimental APIs.
To make it easier to evolve and to extend its API, Kubernetes implements API groups that can be enabled or disabled.
API resources are distinguished by their API group, resource type, namespace (for namespaced resources), and name. The API server handles the conversion between API versions transparently: all the different versions are actually representations of the same persisted data. The API server may serve the same underlying data through multiple API versions.
For example, suppose there are two API versions, v1
and v1beta1
, for the same resource. If you originally created an object using the v1beta1
version of its API, you can later read, update, or delete that object using either the v1beta1
or the v1
API version.
API changes
Any system that is successful needs to grow and change as new use cases emerge or existing ones change. Therefore, Kubernetes has designed the Kubernetes API to continuously change and grow. The Kubernetes project aims to not break compatibility with existing clients, and to maintain that compatibility for a length of time so that other projects have an opportunity to adapt.
In general, new API resources and new resource fields can be added often and frequently. Elimination of resources or fields requires following the API deprecation policy.
Kubernetes makes a strong commitment to maintain compatibility for official Kubernetes APIs once they reach general availability (GA), typically at API version v1
. Additionally, Kubernetes keeps compatibility even for beta API versions wherever feasible: if you adopt a beta API you can continue to interact with your cluster using that API, even after the feature goes stable.
Note: Although Kubernetes also aims to maintain compatibility for alpha APIs versions, in some circumstances this is not possible. If you use any alpha API versions, check the release notes for Kubernetes when upgrading your cluster, in case the API did change. Refer to API versions reference for more details on the API version level definitions.
-
apis-networking.k8s.io-v1-namespaces/{namespace}-ingresses-{name} - delete Networking V1Namespaced Ingress DELETE {{baseUrl}}/apis/networking.k8s.io/v1/namespaces/:namespace/ingresses/:name?dryRun=nulla&gracePeriodSeconds=86553538&orphanDependents=true&propagationPolicy=nulla&pretty=nulla
-
apis-networking.k8s.io-v1-namespaces/{namespace}-networkpolicies-{name} - delete Networking V1Namespaced Network Policy DELETE {{baseUrl}}/apis/networking.k8s.io/v1/namespaces/:namespace/networkpolicies/:name?dryRun=nulla&gracePeriodSeconds=86553538&orphanDependents=true&propagationPolicy=nulla&pretty=nulla
-
apis-networking.k8s.io-v1-namespaces/{namespace}-ingresses-{name} - patch Networking V1Namespaced Ingress PATCH {{baseUrl}}/apis/networking.k8s.io/v1/namespaces/:namespace/ingresses/:name?dryRun=nulla&fieldManager=nulla&force=true&pretty=nulla
-
apis-networking.k8s.io-v1-namespaces/{namespace}-ingresses-{name} - replace Networking V1Namespaced Ingress PUT {{baseUrl}}/apis/networking.k8s.io/v1/namespaces/:namespace/ingresses/:name?dryRun=nulla&fieldManager=nulla&pretty=nulla
-
apis-networking.k8s.io-v1-namespaces/{namespace}-ingresses - delete Networking V1Collection Namespaced Ingress DELETE {{baseUrl}}/apis/networking.k8s.io/v1/namespaces/:namespace/ingresses?continue=nulla&dryRun=nulla&fieldSelector=nulla&gracePeriodSeconds=86553538&labelSelector=nulla&limit=86553538&orphanDependents=true&propagationPolicy=nulla&resourceVersion=nulla&resourceVersionMatch=nulla&timeoutSeconds=86553538&pretty=nulla
-
apis-networking.k8s.io-v1-namespaces/{namespace}-ingresses - list Networking V1Namespaced Ingress GET {{baseUrl}}/apis/networking.k8s.io/v1/namespaces/:namespace/ingresses?allowWatchBookmarks=true&continue=nulla&fieldSelector=nulla&labelSelector=nulla&limit=86553538&resourceVersion=nulla&resourceVersionMatch=nulla&timeoutSeconds=86553538&watch=true&pretty=nulla
-
apis-networking.k8s.io-v1-namespaces/{namespace}-ingresses - create Networking V1Namespaced Ingress POST {{baseUrl}}/apis/networking.k8s.io/v1/namespaces/:namespace/ingresses?dryRun=nulla&fieldManager=nulla&pretty=nulla
-
apis-networking.k8s.io-v1-watch-namespaces/{namespace}-networkpolicies - watch Networking V1Namespaced Network Policy GET {{baseUrl}}/apis/networking.k8s.io/v1/watch/namespaces/:namespace/networkpolicies/:name?allowWatchBookmarks=true&continue=nulla&fieldSelector=nulla&labelSelector=nulla&limit=86553538&pretty=nulla&resourceVersion=nulla&resourceVersionMatch=nulla&timeoutSeconds=86553538&watch=true
-
apis-networking.k8s.io-v1-watch-namespaces/{namespace}-networkpolicies - watch Networking V1Namespaced Network Policy List GET {{baseUrl}}/apis/networking.k8s.io/v1/watch/namespaces/:namespace/networkpolicies?allowWatchBookmarks=true&continue=nulla&fieldSelector=nulla&labelSelector=nulla&limit=86553538&pretty=nulla&resourceVersion=nulla&resourceVersionMatch=nulla&timeoutSeconds=86553538&watch=true
-
apis-node.k8s.io-v1-runtimeclasses-{name} - delete Node V1Runtime Class DELETE {{baseUrl}}/apis/node.k8s.io/v1/runtimeclasses/:name?dryRun=nulla&gracePeriodSeconds=86553538&orphanDependents=true&propagationPolicy=nulla&pretty=nulla