Kubernetes (K8s)
What is Kubernetes?
“Kubernetes, or K8s, is an open source platform that automates Linux container operations. In other words, you can cluster together groups of hosts running Linux containers, and Kubernetes helps you easily and efficiently manage those clusters.” (Source)
Kubernetes is Greek for captain or pilot. The abbreviation "K8s" is derived by replacing the eight letters of “ubernete” with the digit 8
"Kubernetes, at its basic level, is a system for running and coordinating containerized applications across a cluster of machines. It is a platform designed to completely manage the life cycle of containerized applications and services using methods that provide predictability, scalability, and high availability." (Source)
Is Kubernetes an operating system?
"Despite what you may have heard, Kubernetes is not an operating system, but still depends on Linux (or Windows) to be installed on the nodes. Operationally, the focus is on Kubernetes and the workloads it runs — as it should be! — but this leads to an issue commonly seen in Kubernetes deployments." (Source)
What is Kubernetes vs Docker?
"A fundamental difference between Kubernetes and Docker is that Kubernetes is meant to run across a cluster while Docker runs on a single node. Kubernetes is more extensive than Docker Swarm and is meant to coordinate clusters of nodes at scale in production in an efficient manner."
In other words, Docker helps to “create” containers while Kubernetes allows you to “manage” them at runtime...
Docker packages and ships the app
Kubernetes deploys and scales the app
Is Kubernetes using Docker?
"The Kubernetes server runs within a Docker container on your local system, and is only for local testing. When Kubernetes support is enabled, you can deploy your workloads, in parallel, on Kubernetes, Swarm, and as standalone containers. Enabling or disabling the Kubernetes server does not affect your other workloads."
Why is Kubernetes so popular?
"One of the major trends in the tech industry is to run workloads in the public cloud providers. With the help of the cloud-provider component, Kubernetes allows every cluster to integrate with the cloud provider it's running on." (Source)
What OS does Kubernetes run on?
"Kubernetes is cloud agnostic. Kubernetes runs on Amazon Web Services (AWS), Microsoft Azure, and the Google Cloud Platform (GCP), and you can also run it on-premise." (Source)
An Intro to Kubernetes webinar
Does Google use Kubernetes?
"Google Cloud is the birthplace of Kubernetes—originally developed at Google and released as open source in 2014. Kubernetes builds on 15 years of running Google's containerized workloads and the valuable contributions from the open source community." (Source)
What problem does Kubernetes solve?
"Kubernetes can self-heal containerized applications, making them resilient to unexpected failures. Kubernetes can auto-scale containerized applications as per the workload, and ensure optimal utilization of cloud resources. Kubernetes greatly simplifies the process of deployment operations." (Source)Kubernetes uses clusters of Docker hosts to host applications in the form of Docker containers
Docker example: "docker run my-web-server"
Kubernetes example: "kubectl run --replicas=1000 my-web-server"
Kubernetes example: "kubectl scale --replicas=1000 my-web-server"
Great blog from March 13, 2021 by Michael Cade, by Senior Global Technologist at Veeam Software....
Understanding the Kubernetes Storage Journey -- April 4, 2021
Kubernetes is for you if…
You work with containers.
You have more than one services or instances.
Dedicated instance per tenant
Your services are stateless, state is stored in DBs outside of the cluster.
Need fine grained control over the network.
Need easy scalability.
Kubernetes is NOT for you if…
You don’t need scalability.
Your service relies heavily on disks.
You have a monolithic application that serves all of your customers.
Even if you scale it every now and then
Even if you run multiple instances of it
You don’t host your infrastructure in the public cloud.
Getting Started with Amazon Elastic Kubernetes Service (Amazon EKS)