Skip to content

karlkfi/using-kubernetes-the-hard-way

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Using Kubernetes The Hard Way

This tutorial walks you through using Kubernetes the hard way.

This guide is not for people looking to learn how to deploy and operate Kubernetes clusters. If that's you, then check out Kubernetes The Hard Way.

Usage Kubernetes The Hard Way is optimized for learning, which means taking the long route to ensure you understand each task required to deploy and operate a web app on Kubernetes.

Prerequisites

Goals

  • Go
    • Write a web app in Go
    • TODO: Build a Go binary
    • TODO: Go Modules for Dependency Management
    • TODO: Unit Tests
    • Health check endpoint (for Kubernetes Readiness Check)
    • Graceful Termination with Connection Draining on SIGTERM
  • Linting
    • TODO: YAML linting
    • TODO: JSON linting
    • TODO: Shell linting
    • TODO: Goimports (incl go fmt) linting
  • Container Image Building
    • TODO: Docker Hub Image GitOps using GitHub Actions
    • TODO: Image builds for master and version tags
    • TODO: Image builds for branches (for end-to-end testing)
    • TODO: Image builds for CI (for test tool installation)
    • Multi-stage builds for smaller images
  • GitHub Actions
    • GitHub Actions config GitOps
    • TODO: Trigger on PRs/branches
    • TODO: Integration tests on Kubernetes for master and branches
    • TODO: Deployment Promotion Dev -> Staging -> Prod
    • TODO: Container Image Garbage Collection (new image on every push)
    • TODO: Automated Canary Deployment Testing
    • TODO: Terraform Module GitOps
  • Vault
    • TODO: App Secrets in Vault (Kubernetes read, Team write)
  • Kubernetes
    • Zero Downtime Deployments
    • Ingress Load Balancing
    • Pod Disruption Budget
    • Deployment Rollout Strategy
    • Liveness & Readiness Checks
    • TODO: App-specific Kubernetes Service Account
    • TODO: Daytona sidecar App Secrets injection
    • TODO: Resource requests & limits (cpu, memory, ephemeral-storage)
    • TODO: Ephemeral Storage EmptyDir Volume
    • TODO: Version Rollbacks
    • TODO: Horizontal Autoscaling
    • TODO: Vertical Autoscaling
  • Templating (envsubst)
  • DNS
    • Namecheap DNS GitOps
  • TODO: Blackbox Endpoint Monitoring (ex: CULA)
  • TODO: Metrics Dashboards
  • TODO: Monitoring & Alerting
  • TODO: Distributed Tracing

Setup

About

(WIP) Deploy a web app to Kubernetes the hard way.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published