Containers and Kubernetes

General Feb 07, 2019

Brief overview of Containers and Kubernetes

Containers are one of the seamless and fastest solutions in solving legacy software issues in running from one computing environment to another e.g. moving a software from a developers environment to a staging environment or as well migrating from an on premise environment to the cloud.

Containers consist of entire runtime environment by that we mean an application, its dependencies, libraries, configuration files and other binaries needed to be bundled or packaged together. Containerizing an Application liquidates the differences in platform distributions and abstracts the underlying infrastructure.

Containers are in the Linux Kernel and are kernel control groups, namespaces. They can't identify if an application spans multiple isolated environment e.g 10 data centers. Inorder to scale an application we need kubernetes.

Kubernetes is in layman's terms a container Orchestrator. An opensource system that automates, deploys, scales and manages containerized applications, based on the demands required. It groups containers that make up application into sections or logical units for easy management. It has support for multiple cloud environments, on premise VM and bare metal machines.

Kubernetes Principles

Desired State: Declarative Configuration: we only need to define the desire state and its kubernetes job to deploy and manage or keep the system always in the desired state.

Controllers: Control loops that manages or make sure the system is in the desired state.

Master API Server: There is one master API server, this is the corehub which understands the current state of the system and carries changes out.

Summary

  • It is a Container Orchestrator.
  • The required workload can be defined as code, leaving Kubernetes to manage it.
  • It abstracts the Infrastructure.
  • A desired state can be defined leaving Kubernetes to manage it.

Advantages

  • Fast speed of deployment
  • It absorbs changes quickly
  • Redundancy or quick recovery
  • Complexity defined in the cluster - leaving less work

Terminologies used in Kubernetes

  • Container: An application package e.g Docker.
  • Pod: A group of one or more Containers with shared network and storage.
  • Labels: Key and Value pairs metadata attached to objects.
  • Selector: Query against labels that return a set of results.
  • Controller: It keeps the system in the desired state e.g. replica sets.
  • Services: It provides a persistent accesspoints.
  • Storage: It provides a persistent storage in our applications

more terminologies can be found in official website in the link below
https://kubernetes.io/docs/

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
#