Jump to content

Kubernetes

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Remram44 (talk | contribs) at 22:43, 18 October 2015 (I'd very much like this article to exist because the concept is confusing, and it certainly has the notability, but need help here.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Kubernetes
Initial release17 July 2015 (2015-07-17)[1]
Stable release
1.0.6[1] / 10 September 2015; 9 years ago (2015-09-10)
Repository
Written inGo
Operating systemLinux
TypeOperating system-level virtualization
LicenseApache License 2.0
Websitekubernetes.io

Kubernetes is an open-source system for managing and deploying containerized applications across multiple hosts. It automatically determines which node in a cluster should receive each application ("pod" in Kubernetes lingo), based on their current workload and a given redundancy target (thus also providing self-healing). It also provides some means of discovery and communication between containers.[2]

Kubernetes sits on top of virtualization software, such as Docker or rkt, which is used to run the containers that are part of a pod. Its goal is to fill the gap between modern, container-based cluster infrastructure, and assumptions from the applications and services themselves, such as having instances of computation-heavy services run on different hosts or small related services staying close together to minimize latency.[3]

Concepts

  • Cluster: the set of machines on which Kubernetes will run the applications. Though Kubernetes was originally developed for Google Cloud Engine (under the name Borg), it can now be used anywhere.
  • Node or minion: one of the host machines that are part of the cluster, and onto which pods can be deployed and run. It communicates with the cluster through the kubelet service, which relays information and receives command from the master server.
  • Pod: a group of one or more containers is called a pod. Containers in a pod share volumes, are deployed together, and are started, stopped and replicated as a group.
  • Replication controller: this is the controller that manage the lifetime of each pod. They ensure that a specified number of each pods are running, creating or killing pods to match the redundancy target.
  • Service: the abstraction through which a set of pods can be accessed (via service proxies), hiding the fact that they are not stable over time (as the replication controller create and destroy pods).
  • Label: key/value pairs attached to objects (such as pods) to dynamically select them (for instance, to assign them to a service)

References

  1. ^ a b "GitHub Releases page". github.com. 2015-09-10.
  2. ^ "Kubernetes GitHub page".
  3. ^ "An Introduction To Kubernetes". digitalocean.com. 2014-10-01.