Kuber Net Es
Kuber Net Es
Introduction
As applications grow beyond what can be safely handled on a single host, a need has
arisen for what has come to be called an orchestration system.
An orchestration systems helps users view a set of hosts (also referred to as nodes) as a
unified programmable reliable cluster. That cluster can be viewed and used as a giant
computer.
Kubernetes (often abbreviated as k8s) is an open source system started by Google to fill
this need.
Kubernetes Characteristics
A Kubernetes cluster coordinates Docker across multiple nodes and provides a unified
programming model with enhanced capabilities.
Self-healing:
If a node fails, the Kubernetes management system can automatically reschedule work
onto healthy nodes.
Dynamic service membership ensures that those new containers can be found and used
High-cluster utilization:
By scheduling a diverse set of workloads on a common set of machines, users can drive
dramatically higher utilization compared to static manual placement.
The larger the cluster and the more diverse the workloads, the better the utilization.
Microservice friendly:
Kubernetes clusters are a perfect companion for teams adopting a microservices
architecture.
Applications can be broken into smaller parts that are easier to develop, scale, and
reason about. Kubernetes provides ways for a service to find (commonly called
discovery) and communicate with other services.
Streamlined operations:
Kubernetes allows for specialized ops teams. Management of the Kubernetes system
and the nodes that it runs on can be driven by a dedicated team or outsourced to a cloud
service.
Operational teams for specific apps (or the development team itself) can then focus on
running that application without managing the details of individual nodes.
Docker & Kubernetes
While Docker is great for dealing with containers running on a single node, Kubernetes
addresses the additional challenges around cross-node communication and scale.
Cluster scheduling:
The process of placing a container on a specific node to optimize the reliability and
utilization of the cluster.
Pods:
A group of containers that must be placed on a single node and work together as a team.
Allowing a set of containers to work closely together on a single node is a powerful way
to make applications even more manageable.
Labels:
Data attached to pods in order to organize a group for monitoring and management.
Replication controllers:
Agents that work to make sure that a horizontal scaling group or pod is reliably
maintained.
Network services:
A way to communicate between not just pods, but groups of pods by using dynamically
configured naming and network proxies.