DZHANER Back to projects GitHub

HOMELAB / KUBERNETES / PLATFORM

Infrastructure Lab

A hands-on infrastructure environment used to turn Kubernetes, Linux, networking and automation concepts into practical operational experience. The lab is a controlled place to deploy, break, troubleshoot and rebuild systems.

KUBERNETESLINUXDOCKERNETWORKINGHELMKUSTOMIZECILIUMARGOCD

CASE STUDY / ARCHITECTURE

Infrastructure Lab / Kubernetes Platform

A real environment for deploying, breaking, troubleshooting and rebuilding infrastructure end to end.

KUBERNETESGITOPSOBSERVABILITY
01
Infrastructure Lab / Kubernetes PlatformKUBERNETES · GITOPS · OBSERVABILITYA real environment for deploying, breaking, troubleshooting and rebuilding infrastructure end to end.
01
LOCAL INFRASTRUCTURE3 components
Raspberry Pi Nodes3-node lab
NetworkLAN / VPN
02
KUBERNETES4 components
kubeadmCluster bootstrap
CoreDNSService discovery
StoragePV / PVC / local
03
GITOPS4 components
HelmPackage management
KustomizeConfiguration overlays
TerraformInfrastructure as code
04
WORKLOADS3 components
ApplicationsDeployments · Pods · Jobs
ObservabilityMetrics · logs · traces
SecurityRuntime & network controls
01PURPOSE

Learn infrastructure by operating it.

The lab exists to provide a real environment for infrastructure engineering rather than relying only on documentation, courses or interview exercises.

Kubernetes is particularly useful for this because failures are rarely isolated to one command. A broken workload can involve the scheduler, kubelet, container runtime, CNI, DNS, storage, certificates, networking or application configuration.

The lab provides a place to understand those dependencies by actually troubleshooting them.

02PLATFORM

From Linux hosts to Kubernetes workloads.

The platform is used to work with both application-level resources and the underlying cluster components that make those resources function.

LinuxHost operating system
WorkloadsApplications and batch workloads
Deployments / PodsStateless application workloads
NetworkingCNI · Services · DNS
StoragePersistent workload data
PV / PVCPersistent storage resources
03KUBERNETES

Cluster administration, not just kubectl.

The focus is understanding why the cluster behaves the way it does, not memorizing commands in isolation.

  • Pod, Deployment, StatefulSet and DaemonSet lifecycle.
  • Services and workload networking.
  • ConfigMaps, Secrets, Jobs and scheduling behaviour.
  • PersistentVolumes and PersistentVolumeClaims.
  • Horizontal and Vertical Pod Autoscaling concepts.
  • CoreDNS and cluster DNS troubleshooting.
  • Cluster certificates and kubeconfig troubleshooting.
  • Control-plane and kubelet dependencies.
04NETWORKING

Networking becomes visible when something breaks.

The lab has also been used to work with CNI concepts and the transition toward Cilium-based networking and security.

Pod NetworkPod addressing and connectivity
Pod AddressingPod CIDR and identity
RoutingTraffic forwarding
Node NetworkHost-level networking
External NetworkLAN / upstream connectivity
05GITOPS

Move cluster changes toward declarative management.

Helm and Kustomize are used as complementary configuration tools, allowing the lab to explore different approaches to managing Kubernetes manifests.

HelmPackage management
Rendered ManifestsRelease configuration
KustomizeConfiguration overlays
Environment StateEnvironment-specific config
Reconciliation / Drift DetectionCompare and converge state
06TROUBLESHOOTING

Failures are part of the platform.

DNS failure

Trace the problem from the application through the Service and cluster DNS layer toward CoreDNS and the underlying network.

Pod failure

Determine whether the cause is scheduling, image retrieval, configuration, resources, networking, storage or the application.

Node failure

Work through kubelet, container runtime, CNI and control-plane dependencies instead of treating the node as a black box.

Certificate / kubeconfig issues

Trace authentication and cluster access through kubeconfig, certificates and the Kubernetes API endpoint.

07ENGINEERING PRINCIPLE

Break it. Understand it. Rebuild it.

The value of the lab is not the hardware itself. It is the ability to safely experiment with systems that are difficult to understand when everything is working perfectly.

A configuration can be changed, a component can be removed, a workload can be broken and the resulting behaviour can be traced through the platform.

That creates operational knowledge that transfers directly to production troubleshooting.

08DIRECTION

Turn the lab into a platform engineering environment.

The next evolution is to make the environment increasingly declarative and automated: GitOps-managed workloads, stronger observability, Cilium networking and security, automated infrastructure provisioning and tighter integration with AI-based operational tooling.

This creates a useful bridge between the Kubernetes administration work already practiced in the lab and the platform engineering direction of modern DevOps teams.