Google has run its services in containers since the mid-2000s, scheduled by an internal cluster manager, Borg. A successor experiment, Omega, kept all cluster state in one shared store that independent schedulers and controllers read and wrote. In 2013 Joe Beda, Brendan Burns and Craig McLuckie proposed an open-source system built on those lessons, and Google announced Kubernetes 5,150 in June 2014, written in Go under Apache-2.0. The name is Greek for "helmsman"; K8s abbreviates the eight letters between K and s. The codename, Project Seven, honored Star Trek's Seven of Nine, a friendlier Borg, and the logo's wheel has seven spokes. Version 1.0 shipped on 21 July 2015.
The paper "Borg, Omega, and Kubernetes" (2016, research.google/pubs/borg-omega-and-kubernetes (https://research.google/pubs/borg-omega-and-kubernetes/ 9,751 )) explains much of the design in this chapter. Borg's alloc became the Pod. Borg gave containers the host's IP address, so ports had to be scheduled like CPU; Kubernetes gives every Pod its own IP. Borg's job index numbers became free-form labels. Omega's shared state became the API server in front of etcd 137,357 , the only component that touches the database, with everything else a client that watches and reacts.