Kubernetes
This article or section is in a state of significant expansion or restructuring. You are welcome to assist in its construction by editing it as well. If this article or section has not been edited in several days, please remove this template. If you are the editor who added this template and you are actively editing, please be sure to replace this template with {{in use}} during the active editing session. Click on the link for template parameters to use.
This article was last edited by Remram44 (talk | contribs) 9 years ago. (Update timer) |
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
Initial release | 17 July 2015[1] |
---|---|
Stable release | 1.0.6[1]
/ 10 September 2015 |
Repository | |
Written in | Go |
Operating system | Linux |
Type | Operating system-level virtualization |
License | Apache License 2.0 |
Website | kubernetes |
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
- ^ a b "GitHub Releases page". github.com. 2015-09-10.
- ^ "Kubernetes GitHub page".
- ^ "An Introduction To Kubernetes". digitalocean.com. 2014-10-01.