Ga naar inhoud

Kubernetes the Hard Way

We installeren Kubernetes volledig handmatig volgens de Kelsey Hightower tutorial, aangepast voor onze homelab setup.

Waarom the Hard Way?

  • Begrip: Je snapt elk component en waarom het er is
  • Debugging: Als iets kapot gaat, weet je waar je moet kijken
  • Geen magic: Geen hidden defaults van K3s/MicroK8s/etc

Onze Setup vs Tutorial

Tutorial Onze Setup
GCP VMs HP EliteDesk Mini-PC's
3 controllers + 3 workers 1 control plane + 2 workers
GCP networking Flat LAN (192.0.2.0/24)

Componenten Overview

┌─────────────────────────────────────────────────────────────┐
│                     CONTROL PLANE (node01)                  │
├─────────────────────────────────────────────────────────────┤
│  etcd          - Cluster state database                     │
│  kube-apiserver    - API endpoint                           │
│  kube-scheduler    - Pod placement decisions                │
│  kube-controller-manager - Reconciliation loops             │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                     WORKERS (node02, node03)                │
├─────────────────────────────────────────────────────────────┤
│  kubelet       - Node agent, runs pods                      │
│  kube-proxy    - Network rules for services                 │
│  containerd    - Container runtime                          │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                     NETWORKING                              │
├─────────────────────────────────────────────────────────────┤
│  CNI plugin    - Pod networking (we kiezen later)           │
│  CoreDNS       - Cluster DNS                                │
└─────────────────────────────────────────────────────────────┘

Netwerk Configuratie

Node Network:    192.0.2.0/24
Pod CIDR:        10.200.0.0/16
  - node01:      10.200.0.0/24
  - node02:      10.200.1.0/24
  - node03:      10.200.2.0/24
Service CIDR:    10.32.0.0/24
Cluster DNS:     10.32.0.10

Stappenplan

Dag 1: Certificaten & Configuratie

  • [ ] Certificate Authority (CA) aanmaken
  • [ ] Client certificaten genereren
  • [ ] Kubernetes config files genereren
  • [ ] Data encryption config

Dag 2: etcd Cluster

  • [ ] etcd installeren op control plane
  • [ ] Cluster bootstrappen
  • [ ] Verificatie

Dag 3: Control Plane

  • [ ] kube-apiserver configureren
  • [ ] kube-controller-manager configureren
  • [ ] kube-scheduler configureren
  • [ ] kubectl configureren voor remote access

Dag 4: Worker Nodes

  • [ ] containerd installeren
  • [ ] kubelet configureren
  • [ ] kube-proxy configureren

Dag 5: Networking & DNS

  • [ ] CNI plugin installeren
  • [ ] Pod routes configureren
  • [ ] CoreDNS deployen → manifest: kubernetes/infrastructure/coredns/coredns.yaml

Dag 6: Smoke Tests

  • [ ] Pod deployment test
  • [ ] Service test
  • [ ] DNS test

Tools Nodig

Op je lokale machine:

# cfssl - Certificate generation
# kubectl - Kubernetes CLI

# We installeren deze wanneer we beginnen

Referenties

Volgende Stap

Zodra de nodes geprepareerd zijn (zie Post-install), beginnen we met de certificaten.

Gedetailleerde instructies per stap komen in: - 07-certificates.md - 08-etcd.md - 09-control-plane.md - 10-workers.md - 11-networking.md