This section of the Kubernetes documentation contains references.
API Reference
-
Glossary - a comprehensive, standardized list of Kubernetes terminology
-
Using The Kubernetes API - overview of the API for Kubernetes.
-
API access control - details on how Kubernetes controls API access
Officially supported client libraries
To call the Kubernetes API from a programming language, you can use client libraries. Officially supported client libraries:
- Kubernetes Go client library
- Kubernetes Python client library
- Kubernetes Java client library
- Kubernetes JavaScript client library
- Kubernetes C# client library
- Kubernetes Haskell client library
CLI
- kubectl - Main CLI tool for running commands and managing Kubernetes clusters.
- JSONPath - Syntax guide for using JSONPath expressions with kubectl.
- kubeadm - CLI tool to easily provision a secure Kubernetes cluster.
Components
-
kubelet - The primary agent that runs on each node. The kubelet takes a set of PodSpecs and ensures that the described containers are running and healthy.
-
kube-apiserver - REST API that validates and configures data for API objects such as pods, services, replication controllers.
-
kube-controller-manager - Daemon that embeds the core control loops shipped with Kubernetes.
-
kube-proxy - Can do simple TCP/UDP stream forwarding or round-robin TCP/UDP forwarding across a set of back-ends.
-
kube-scheduler - Scheduler that manages availability, performance, and capacity.
-
List of ports and protocols that should be open on control plane and worker nodes
Config APIs
This section hosts the documentation for "unpublished" APIs which are used to configure kubernetes components or tools. Most of these APIs are not exposed by the API server in a RESTful way though they are essential for a user or an operator to use or manage a cluster.
- kubeconfig (v1)
- kuberc (v1alpha1) and kuberc (v1beta1)
- kube-apiserver admission (v1)
- kube-apiserver configuration (v1alpha1) and kube-apiserver configuration (v1beta1) and kube-apiserver configuration (v1)
- kube-apiserver event rate limit (v1alpha1)
- kubelet configuration (v1alpha1) and kubelet configuration (v1beta1) and kubelet configuration (v1)
- kubelet credential providers (v1)
- kube-scheduler configuration (v1)
- kube-controller-manager configuration (v1alpha1)
- kube-proxy configuration (v1alpha1)
audit.k8s.io/v1API- Client authentication API (v1beta1) and Client authentication API (v1)
- WebhookAdmission configuration (v1)
- ImagePolicy API (v1alpha1)
Config API for kubeadm
External APIs
These are the APIs defined by the Kubernetes project, but are not implemented by the core project:
Design Docs
An archive of the design docs for Kubernetes functionality. Good starting points are Kubernetes Architecture and Kubernetes Design Overview.
Encodings
Tools such as kubectl can work with different formats / encodings. These include:
- CBOR, used on the network but not available as a kubectl output format
- JSON, available as a
kubectloutput format and also used at the HTTP layer - KYAML, a Kubernetes dialect of YAML
- KYAML is essentially an output format; any place where you can provide KYAML to Kubernetes, you can also provide any other valid YAML input
- YAML, available as a
kubectloutput format and also used at the HTTP layer
Kubernetes also has a custom protobuf encoding that is only used within HTTP messages.
The kubectl tool supports some other output formats, such as custom columns;
see output formats in the kubectl reference.