Master |
A master Kubernetes node. This is made up of the apiserver , the Cluster Store (etcd ), kube-controller-manager , cloud-controller-manager , and kube-scheduler . The Master delegates work to the Nodes. |
Node |
An agent that receives work from a Master. Previously known as a minion. The Node is made up of the Kubelet , a container engine (almost always Docker ), and the kube-proxy . |
Cluster |
When people refer to the Cluster in Kubernetes, they are usually referring to the Cluster of nodes in which the Master communicates to. A pod, however, may contain a cluster of containers as well. |
Pod |
The most atomic execution unit. It encapsulates your application (in a container, or multiple containers), storage resources, and gives it a unique IP. Scaling is based around pods, such that if you want to scale an application, you increase the number of pods as opposed to increasing the number of containers in the pod. It is mortal in the sense that it is born, it lives, and then it dies. Pods are never resurrected. Pods are defined by manifests. |
Declarative Model |
A model in which you define what you want your desired state to be. You only describe what you want, and not how to go about reaching it. This is opposed to an imperative model where you define the exact steps to perform to achieve your desired state. An example of a declarative command would be kubectl apply , whereas an imperative command would be kubectl create |
Manifest |
A YAML file that defines the desired state of an application. |
Service |
A Kubernetes object similar to a pod. The service acts as a load balancer with a stable IP. You can assign pods to services via labels. Services will only route traffic to healthy pods. The load balancing is random by default but can be set to round robin. It serves TCP by default but can also use UDP. |
Deployment |
Deployments are controlled with a manifest file, and allow you to define the state of pods and ReplicaSets. |
Replication Controller |
Replication controllers enable Kubernetes to deploy multiple replicas of a single pod definition. Useful for scaling, self-healing, and rolling updates. |
apiserver |
The frontend of the master where all communication occurs. Both the user (usually through kubectl ) and the cluster communicate to the apiserver. |
Stateful Set |
A StatefulSet is like a Deployment, except that the Pods are given unique identifiers. |
Persistent Volume Claims |
Used for declaring what you need in terms of persistence. Kubernetes will handle it for you so that you need not create a PersistentVolume directly. |
Horizontal Pod Autoscaler |
The HorizontalPodAutoscaler object is a resource and a controller, and the controller periodically adjusts the number of replicas in a replication controller or deployment to match the observed average CPU utilization to the target specified by user. |
Secrets |
The Secrets API lets you define secrets in multiple different formats, and use them as environment variables or volumes within your pods. The Secrets can be protected through Role Based Access Control. In the API Server, the secrets data are stored in etcd. |
ConfigMaps |
The same as secrets, except unencrypted. |