Professional Documents
Culture Documents
What is Kubernetes - Kubernetes
What is Kubernetes - Kubernetes
HOMESETUPCONCEPTSTASKSTUTORIALSREFERENCECONTRIBUTE
Search
What is Kubernetes
Google open-sourced the Kubernetes project in 2014. Kubernetes builds upon a decade and a
half of experience that Google has with running production workloads at scale, combined with
best-of-breed ideas and practices from the community.
a container platform
a microservices platform
a portable cloud platform and a lot more.
Even though Kubernetes provides a lot of functionality, there are always new scenarios that
would bene?t from new features. Application-speci?c workMows can be streamlined to
accelerate developer velocity. Ad hoc orchestration that is acceptable initially often requires
robust automation at scale. This is why Kubernetes was also designed to serve as a platform
for building an ecosystem of components and tools to make it easier to deploy, scale, and
manage applications.
Labels empower users to organize their resources however they please. Annotations enable
users to decorate resources with custom information to facilitate their workMows and provide
an easy way for management tools to checkpoint state.
Additionally, the Kubernetes control plane is built upon the same APIs that are available to
developers and users. Users can write their own controllers, such as schedulers, with their
own APIs that can be targeted by a general-purpose command-line tool.
This design has enabled a number of other systems to build atop Kubernetes.
Kubernetes:
Does not limit the types of applications supported. Kubernetes aims to support an
extremely diverse variety of workloads, including stateless, stateful, and data-processing
workloads. If an application can run in a container, it should run great on Kubernetes.
Does not deploy source code and does not build your application. Continuous Integration,
Delivery, and Deployment (CI/CD) workMows are determined by organization cultures and
preferences as well as technical requirements.
Does not provide application-level services, such as middleware (e.g., message buses),
data-processing frameworks (for example, Spark), databases (e.g., mysql), caches, nor
cluster storage systems (e.g., Ceph) as built-in services. Such components can run on
Kubernetes, and/or can be accessed by applications running on Kubernetes through
portable mechanisms, such as the Open Service Broker.
Does not dictate logging, monitoring, or alerting solutions. It provides some integrations
as proof of concept, and mechanisms to collect and export metrics.
Does not provide nor mandate a con?guration language/system (e.g., jsonnet). It provides
a declarative API that may be targeted by arbitrary forms of declarative speci?cations.
Does not provide nor adopt any comprehensive machine con?guration, maintenance,
management, or self-healing systems.
Additionally, Kubernetes is not a mere orchestration system. In fact, it eliminates the need for
orchestration. The technical de?nition of orchestration is execution of a de?ned workMow: ?rst
do A, then B, then C. In contrast, Kubernetes is comprised of a set of independent, composable
control processes that continuously drive the current state towards the provided desired state.
It shouldn’t matter how you get from A to C. Centralized control is also not required. This
results in a system that is easier to use and more powerful, robust, resilient, and extensible.
Why containers
Because containers are small and fast, one application can be packed in each container
image. This one-to-one application-to-image relationship unlocks the full bene?ts of
containers. With containers, immutable container images can be created at build/release time
rather than deployment time, since each application doesn’t need to be composed with the
rest of the application stack, nor married to the production infrastructure environment.
Generating container images at build/release time enables a consistent environment to be
carried from development into production. Similarly, containers are vastly more transparent
than VMs, which facilitates monitoring and management. This is especially true when the
containers’ process lifecycles are managed by the infrastructure rather than hidden by a
process supervisor inside the container. Finally, with a single application per container,
managing the containers becomes tantamount to managing deployment of the application.
Agile application creation and deployment: Increased ease and e^ciency of container
image creation compared to VM image use.
Continuous development, integration, and deployment: Provides for reliable and frequent
container image build and deployment with quick and easy rollbacks (due to image
immutability).
Observability Not only surfaces OS-level information and metrics, but also application
health and other signals.
Cloud and OS distribution portability: Runs on Ubuntu, RHEL, CoreOS, on-prem, Google
Kubernetes Engine, and anywhere else.
The name Kubernetes originates from Greek, meaning helmsman or pilot, and is the root of
governor and cybernetic. K8s is an abbreviation derived by replacing the 8 letters “ubernete”
with “8”.
What's next
Feedback
Yes No
Page last modi7ed on April 26, 2019 at 9:54 AM PST by keep consistent with others' heading
(#14002) (Page History)
Home
Blog
Partners
Community
Case Studies
Contribute