Beruflich Dokumente
Kultur Dokumente
With Kubernetes, you are able to quickly and efficiently respond to customer demand:
Kubernetes can schedule and run application containers on clusters of physical or virtual
machines. However, Kubernetes also allows developers to cut the cord to physical and virtual
machines, moving from a host-centric infrastructure to a container-centric infrastructure,
which provides the full advantages and benefits inherent to containers. Kubernetes provides
the infrastructure to build a truly container-centric development environment.
Kubernetes:
Does not limit the types of applications supported. It does not dictate application
frameworks (e.g., Wildfly), restrict the set of supported language runtimes (for example,
Java, Python, Ruby), cater to only 12-factor applications, nor
distinguish apps from services. 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 provide middleware (e.g., message buses), data-processing
frameworks (for example, Spark), databases (e.g., mysql), nor cluster storage systems
(e.g., Ceph) as built-in services. Such applications run on Kubernetes.
Does not deploy source code and does not build your application. Continuous
Integration (CI) workflow is an area where different users and projects have their own
requirements and preferences, so it supports layering CI workflows on Kubernetes but
doesnt dictate how layering should work.
Allows users to choose their logging, monitoring, and alerting systems. (It
provides some integrations as proof of concept.)
Since Kubernetes operates at the application level rather than at the hardware level, it
provides some generally applicable features common to PaaS offerings, such as
deployment, scaling, load balancing, logging, and monitoring. However, Kubernetes is
not monolithic, and these default solutions are optional and pluggable.
Additionally, Kubernetes is not a mere orchestration system. In fact, it eliminates the
need for orchestration. The technical definition of orchestration is execution of a
defined workflow: first 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 shouldnt matter how you get from A to C.
Centralized control is also not required; the approach is more akin to choreography.
This results in a system that is easier to use and more powerful, robust, resilient, and
extensible.
ARCHITECTURE
Kubernetes Primitives and Key Words
Master
Minion/Node
Pod
Replication Controller
Service
Label
Namespace
Master
Typically consists of:
kube-apiserver
kube-scheduler
kube-controller-manager
etcd
Might contain:
kube-proxy
Minion - Node
Typically consists of:
kubelet
kube-proxy
cAdvisor
Might contain:
POD
Single schedulable unit of work
Pod template
Count
Label Selector
Kube will try to keep $count copies of pods matching the label selector running
If too few copies are running the replication controller will start a new pod somewhere in the cluster
Services
How 'stuff' finds pods which could be anywhere
Define:
Can define:
Namespace
Users with permission to CRUD objects in ns1 may not have permissions to CRUS object in ns2