The Path to Understanding Kubernetes and Containers - Intro

Purpose:

Containers slightly resemble virtual machines. In that, they contain file systems, all necessary libraries, and will use portions of memory and compute from the host. Containers can allow you to build and move applications nearly anywhere and are usually lightweight. Being that they are lightweight, this allows you to maintain different environments (dev, qa, production) and have full application functionality.

Kubernetes originates from Greek, meaning pilot or helmsman. It’s an open source platform used in managing containerized workloads and services. Kubernetes is an orchestration tool ensuring containerized workloads are available and scalable. And since its power is in orchestration this relieves admins from the burden of many manual processes to keep applications available and push updates.

What Kubernetes is NOT:
  • Hypervisor or Operating System
  • Replacement for container runtime (i.e. Docker)
  • Just for Microservices
  • Standalone solution
What Kubernetes IS:
  • Orchestration Platform (ensuring workloads are available/scalable)
  • Ideal for microservices
  • Enables cloud native application design

The evolution of applications from baremetal servers, to virtual servers and now containers. Each one of these technologies serves its purpose and moving to the latest and greatest is not always the answer. There are, however, some definite advantages to a container based environment. In the Container Deployment image you can see we are no longer bound to the operating system, you can set resource limits per container and application dependencies are all built with the container image. Since the container houses the application and its dependencies, this allows for easier upgrades and security fixes to your application.

Container Evolution

Official Kubernetes Documentation

Feel free to use the official documentation to clarify information or dive deeper in this lab:

Lab Inventory

Instance IP Address OS NGINX Services Apps/Protocols
k3s Leader Node 10.1.1.5 Ubuntu 20.04 LTS NIC SSH, k3s
k3s Worker Node 1 10.1.1.6 Ubuntu 20.04 LTS NIC SSH, k3s, Arcadia Finance
k3s Worker Node 2 10.1.1.7 Ubuntu 20.04 LTS NIC SSH, k3s, Arcadia Finance
NGINX Plus 1 10.1.1.8 Ubuntu 20.04 LTS Plus + NAP SSH
NGINX Plus 2 10.1.1.9 Ubuntu 20.04 LTS Plus SSH
DevOps Tools 10.1.1.10 Ubuntu 20.04 LTS none SSH

Accessing the Lab

All of the procedures you’ll be asked to accomplish will be done using a web shell. To access the web shell from the Jumphost client:

../_images/jumphost_webshell.png