Skip to main content

Kubernetes Beginner

Introduction

Introduction to Kubernetes

The Kubernetes Course Series

Kubernetes Overview

Containers Overview

Containers Orchestration

Kubernetes Architecture

Setting Up Kubernetes

  • Minikube
    • Bundles all the k8 components into a single node
  • MicroK8s
  • kubeadm
    • Tool to bootstrap a cluster
  • AWS
  • Azure
  • GCP
  • www.codecloud.com
  • kubectl - command line utility

Commands

kubectl

Check the version

  • kubectl version client
  • kubectl version

Check that vertualisation is enabled

  • sysctl -a | grep -E --color 'machdep.cpu.features|VMX'

Virtualbox

  • Install Virtual Box
    • Guest OS

Minikube

Installation

  • Install and start Minikube
    • brew install minikube
    • minikube start --driver=virtualbox
  • Downlaods Minikube iso and Kubernetes + docker images
  • Creates a Virtualbox VM
  • Prepares Kubernetes and Docker
  • Configures kubectl to use minikube
  • A virtual machine named minikube should to running
  • Open Virtual Box UI and verify

Check status, stop, start

Status of cluster

  • minikube status

Stop cluster

  • minikube stop

Start cluster

  • minikube start

Open Kuberneted dashboard, supported by minikube, built-in

  • minikube dashboard

Deploy Application

  • kubectl get nodes

Deploy an application

  • kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10

  • kubectl get deployments

Expose deployment as a service

  • kubectl expose deployment hello-minikube --type=NodePort --port=8080

The hello-minikube Pod is now launched but you have to wait until the Pod is up before accessing it via the exposed Service

  • kubectl get pod

Get the URL of the exposed Service to view the Service details

  • minikube service hello-minikube --url

Cleanup

  • kubectl delete services hello-minikube
  • kubectl delete deployment hello-minikube

Hands on Lab/ Demo

  • kubectl get nodes -o wide
  • Create an nginx pod: kubectl run nginx --image nginx
  • kubectl describe pod nginx
  • kubectl get pods -o wide

Introduction to YAML

Kubernetes Concepts

PODs, ReplicsSets and Deployments

Labels help to filter the pods

Create pod.yaml file

Run the following command to create the pod

kubectl apply pod.yaml

Notes

Install VS Code extension for yaml support

Ctrl + Space to get auto suggestion.

Reference

https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/ https://kube.academy/lessons/kubernetes-concepts - Declarative v/s Imperative, Control Loop
https://kube.academy/courses
https://sysdig.com/blog/debug-kubernetes-crashloopbackoff/ https://sysdig.com/products/monitor/