Kubernetes for senior admins

Day 1

What is Kubernetes

  • What constitutes as Kubernetes distribution: etcd, CoreDNS, Kube API, Kubelet
  • Pluggable Kubernetes components: CNI, CSI
  • Kubernetes primitives: Pod, Deployment, Service, Ingress
  • Integrating Kubernetes into existing infrastructure: external-dns, cert-manager, Cilium, SSO
  • Ingress controllers: Traefik, nginx, haproxy
  • Working with kubectl and Kubernetes Lens

Goal: deploy a sample application

Day 2

Persistent workloads in Kubernetes

  • Block level storage options: Longhorn, OpenEBS
  • Application level replication: MySQL, Mongo, Minio, Redis, KeyDB, Postgres
  • Quorum, primary-secondary, primary-secondary-arbiter
  • Failure modes, availability zones, node affinity, node selector

Goal: package and deploy custom application

Day 3

Observability

  • Monitoring with Prometheus
  • Notifications via Alertmanager
  • Prometheus exporters: node exporter and textfile collectors; blackbox exporter; SNMP exporter
  • Gotchas and caveats when writing own exporters
  • Logging with ECK stack and Loki: what to log, JSON usecases and caveats
  • Briefly about tracing
  • Multi-cluster monitoring with Thanos

Goal: set up logging and monitoring for your application

Homework

Take time to reflect and to play around with the Kubernetes sandbox that is prepared for the participant

  • Get your application manifests uploaded to a Git repository
  • Attempt to define useful alerting rules for your application
  • Attempt to create histogram chart in Grafana for your application

As it's tricky to schedule 5 days in a row for training we have planned here few days break from the training to catch up with daily tasks.

Day 4

Recap homework

  • Managing applications in Kubernetes
  • Build pipelines with Woodpecker CI and Kaniko
  • Hosting, distributing, caching Docker images with Gitea container registry
  • Continuous delivery with ArgoCD
  • Helm vs operators

Goal: your application is managed by ArgoCD

Day 5

Final touches

  • Planning for self-service environment for your organization
  • Writing Kubernetes operators yourself
  • Securing cluster: ACL-s, network policies, admission webhooks
  • Backing up cluster contents, preparing for disaster recovery

Goal: set network policies and ACL-s for your application

Developing cloud native applications

Day 1

Introduction to containers

  • Microservices vs monolith and striking a balance between them
  • Containerization with Docker
  • Introduction to Kubernetes
  • Working with Skaffold, Kaniko
  • Hello world with Python, Go, Java, Nodejs
  • Debugging remote pods from local IDE

Day 2

Anatomy of cloud native application

  • Using databases, object storage, Redis
  • Making use of database secondaries for load distribution and high availability
  • Handling metrics, logs, tracing
  • Setting up Docker image build pipeline for your application

Day 3

Going to production

  • Deploying application with ArgoCD
  • Monitoring your application with Prometheus, Grafana
  • Declarative alerting rules with Prometheus operator CRD-s
  • Working with log aggregator such as Graylog
  • What is Platform Engineering and what the future holds

Training price 1290EUR per person (+VAT)

Shell masterclass

Day 1

What is shell

  • Working with shell, keyboard shortcuts, bash, zsh
  • Customizing shell, aliases, environment variables
  • Working with remote servers with OpenSSH, ssh_config, setting up keys, U2F, scp, sftp
  • UNIX filesystem hierarchy, navigating filesystem, ls, cd, cat etc
  • Basic network troubleshooting, ping, mtr, traceroute, resolv.conf, tcpdump
  • Package management, apt, yum, rpm

Goal: secure access to remote server without passwords

Day 2

Working with textual data

  • Using pipes, stdin, stdout, stderr, named pipes, zcat
  • Regular expressions, filtering data with grep, awk
  • Counting, sorting lines
  • Basic programming constructs, conditional statements, functions, arithmetic, formatting strings
  • Piping data over network connections with nc and ssh
  • Interacting with API-s, curl
  • Parsing JSON, YAML, XML

Goal: Find top URL-s, HTTP status codes, source IP-s etc from an Apache webserver logfile

Day 3

Running and scheduling scripts

  • Using pseudographic user interfaces, dialog, whiptail
  • Working with systemd, journalctl
  • Scheduling jobs with cron and systemd timers
  • Python and other programming languages
  • Docker, Ansible and their relationship to shell scripting
  • Working with Git

Goal: Run a shell script on multiple machines

Training price 1290EUR per person (+VAT)