Skip to main content

Kubernetes Introduction

Theory

Why do we need Kubernetes

Kubernetes is a container orchestrator, but what is container orchestration?

  • Provisioning and deployment
  • Configuration and scheduling
  • Resource allocation
  • Container availability
  • Scaling or removing containers based on balancing workloads across your infrastructure
  • Load balancing and traffic routing
  • Monitoring container health
  • Configuring applications based on the container in which they will run
  • Keeping interactions between containers secure
tip

for in-depth analysis of kubernetes orchestartion please check this medium blog post

Resources

Practice

We will create cluster based on our IAC session using this repo

Cluster will be already deployed for the exercises. We are doing to focus on what developer's point of view and will skip Operations and Infrastructure concerns You will have access to the cluster running in azure-k8stest resource group. Cluster name is k8stest in azure-k8stest resource group

Accessing cluster

In order to access the running cluster and be able to follow along you need to install kubectl (CLI to interact with Kubernetes clusters).

  • follow this guide to install kubectl
  • once kubectl is installed run this command az aks get-credentials -g azure-k8stest -n k8stest, it will append auth info to your Kubernetes config file so you can interact with the cluster
  • run kubectl get nodes to verify that you have access to the cluster (you should see 3 nodes)

AKS Specific

Development Loop

https://itnext.io/best-practices-for-developing-on-kubernetes-8fbdbba12538

Monitoring

Exercise 1 - Deployments

Exercise on Katacoda

Exercise 2 - Persistent Storage

My Medium Blog

Exercise 3 - Configuration

Exercise on Katacoda

Exercise 5 - Services

Exercise on Katacoda

Exercise 6 - Putting it all together

Source Repository

Clone the repository and deploy sample app to AKS cluster

Bonus Exercise

I don't want to hand craft all those yaml files, I've already learned docker and docker compose!! Why do I have to learn new syntax again?!

Well, good news, you don't have to. If you have an existing docker-compose.yaml file, you can use kompose CLI to convert them to native Kubernetes resources.

Try it out yourself:

Bonus Material

Here is list of free services and programs to play around with Kubernetes and Docker