Software Engineering, Architecture, Technology.

Kubernetes Learning | Video Guide

Short, simplified step-by-step guide on how to get started with Kubernetes.
Not only for Developers & Ops, but anyone who is interested to learn about the technology.
This hands-on guide is aimed to help you learn the basics of operating Kubernetes.
We'll cover:
* Getting a cluster
* Configuration + Command line
* Deployments
* Configs and Secrets
* Networking basics
* Ingress and traffic management


Many folks come from a non-Linux background. Many don't use the command line.
In this series we're going from installation on Windows to all the advanced concepts of Kubernetes.
Let's get started:


Part 1: Getting started on Windows for beginners

Back to basics! Let's setup and install Kubernetes on Windows. It doesn't matter whether its Linux or Windows. One must remember it doesn't matter whether which cloud provider you are on. Kubernetes is a portable and cloudnative solution. This means the interfaces are portable, so it can run anywhere, in any cloud and on your laptop. The containers we build and ship to Kubernetes should behave the same between your laptop and production.


Part 2: Command line basics with KUBECTL

In this video we cover the command line. There are many UI's and dashboard plugins for Kubernetes. If you want to become an expert, you want to avoid all the fancy abstractions and get down & dirty with the command line. It will strengthen and build your understanding of Kubernetes objects and concepts


Part 3: Deployments on Kubernetes

Kubernetes has simple interfaces for describing our deployment. It's called desired state. This is what makes Kubernetes special. We don't write imperative line by line statements. Traditional deployments are fragile because scripts can fail at any point leaving your system in a bad unintended state. In Kubernetes, we describe what we want, and control loops make it happen. Kubernetes monitors the state of the world and tries to ensure the actual state matches the desired state.


Part 4: Configuration Management

Most applications we deploy will need some form of configuration. Having configuration separate from a deployment is a DevOps norm.
Kubernetes follows this same approach by allowing us to manage configuration files independantly.
Developers can easily mount these configuration files for use in application deployments.


Part 5: Basic Secret Management

Similar to configuration files, we have some types of configuration which contain sensitive information. These may be TLS certificates, API keys or some credentials.
Kubernetes allow us to seperate concern so SecOps may take care of secret deploments and
Developers can focus on their applications and simply reference a secret by name in order for an application to consume it without leaking the sensitive values to the developer.


Part 6: Load Balancing and Service Discovery

Kubernetes has built in networking features which allows us to get internal DNS names for our applications with ease.
With built-in service discovery, we don't have to manage internal IP addresses for our applications, or care
about how applications find each other across machines. Kubernetes take care of the networking by bridging
servers together so applications can find each other.


Part 7: Ingress and Traffic Management

When developing HTTP based services and websites, proxies and API gateways are very useful for load balancing and URL rewriting.
In Kubernetes, these proxies or API gateways are described as Ingress Controllers. These controllers simplifies the way we define routing rules and proxy configuration with a standard uniform desclarative structure called an Ingress.
In an Ingress rule we state our intent and the Ingress controller will transform this into proxy configuration.