This page is under regular updates. Please check back later for more content.
Kubernetes

Introduction

  • Kubernetes is an open source container management tool which automates container deployment, container scaling and load balancing

  • Kubernetes is "an open-source system for automating deployment, scaling and managing of containerized applications" https://kubernetes.io (opens in a new tab). The word Kubernetes comes from the Greek language, and means "pilot of the ship"

  • It schedules and manages isolated containers which are running on virtual/physical/cloud machines

  • All top cloud providers support kubernetes

  • Kubernetes is currently owned by Cloud Native Computing Foundation (CNCF), an open-source foundation within the Linux Foundation

  • Kubernetes is an ecosystem, providing a core solution, with many third- party add-ons provided by approved projects, focusing on different areas -

    • Networking
    • Ingress
    • Monitoring
    • Packaging
    • and much more

Understanding Kubernetes

  • Kubernetes implements a platform to run container-based applications in a Cloud Native Computing environment
  • In Cloud Native Computing, applications are hosted by the cloud, and have no direct relation to a server
  • As a result, all that is needed by the application needs to be stored in the cloud
  • To successfully run applications in a Cloud Native environment, specific properties must be provided
  • These properties are defined in Kubernetes Resources
  • Resources are defined in the Kubernetes APIs

History

  • Google developed an internal system called 'Borg' (later named as Omega) to deploy and manage thousand Google applications and services on their cluster (group of same type).

  • In 2014 Google introduced Kubernetes an open source platform written in GoLang, later donated to Cloud Native Computing Foundation (CNCF).

Online Platform for K8s

  • Kubernetes Platform

  • Play with K8s

  • Play with Kubernetes classroom

Cloud based K8s Service

There are three most popular kubernetes cloud service those are -

  • GKS - Google Kubernetes Service
  • AKS - Azure Kubernetes Service
  • EKS - Elastic Kubernetes Service

Kubernetes installation tools

  • kubeadm
  • minikube

Problems with scaling up the contnainers

  • Containers can't communicate with each Other
  • Auto scaling and load balancing was not possible
  • Containers need to be managed carefully

Features of Kubernetes

  • Orchestration (clustering of any number of containers running on different network)
  • Auto scaling (vertical and horizontal)
  • Load balancing
  • Perform independent
  • Fault tolerance (Pod failures / node)
  • Rollback (Going back to previous version)
  • Health monitoring
  • Batch execution (One time, sequential or parallel)

Understanding Kubernetes Competition

  • Kubernetes is open source, and as such available to everyone and any company
  • The open source nature of Kubernetes allows companies to use a very strong common code base and focus on features the specific company wants to add to that
  • For that reason, currently there is no significant competition to Kubernetes
  • There are Kubernetes distributions though
  • Docker Swarm can be considered a competing solution, but Kubernetes has made it less relevant

Kubernetes Distributions

  • Vanilla Kubernetes is Kubernetes directly created from the source code hosted by CNCF
  • Kubernetes distributions are adding specific functionality and selection of solutions from the ecosystem
    • Google Anthos
    • Red Hat OpenShift
    • SUSE Rancher
    • Canonical Kubernetes

Understanding Kubernetes release

  • A new release of Kubernetes is published every 3 months!
  • When a new release is published, new versions of the APIs may become available, and old features may get deprecated
  • If a feature is deprecated, adopt the new method, as the feature will go away within the next 2 releases!