kubernetes-homelab
Building a Kubernetes homelab using kubeadm, Ansible, Helm and Terraform.
File Explorer
Download Latest Version (.zip)- stale-action.yml
- FUNDING.yml
- renovate.json
- configure-docker.yml
- configure-hardening.yml
- configure-hostsfile.yml
- configure-k8s.yml
- configure-node-exporter.yml
- configure-pihole-exporter.yml
- configure-sshd.yml
- configure-static-route.yml
- configure-timezone.yml
- create-users.yml
- deploy-k8s-cluster.yml
- main-k8s-hosts.yml
- main.yml
- main.yml
- main.yml
- setup-RedHat.yml
- README.md
- main.yml
- main.yml
- setup-RedHat.yml
- README.md
- main.yml
- main.yml
- setup-RedHat.yml
- hosts.j2
- README.md
- main.yml
- main.yml
- setup-RedHat.yml
- README.md
- main.yml
- dashboard-adminuser.yaml
- main.yml
- setup-RedHat.yml
- README.md
- main.yml
- main.yml
- setup-RedHat.yml
- node_exporter.service.j2
- README.md
- main.yml
- main.yml
- setup-Debian.yml
- setup-RedHat.yml
- pihole_exporter.service.j2
- README.md
- main.yml
- main.yml
- main.yml
- setup-Debian.yml
- setup-RedHat.yml
- sshd_config.j2
- main.yml
- README.md
- main.yml
- main.yml
- setup-RedHat.yml
- route-ethx.j2
- README.md
- main.yml
- secure.yml
- id_rsa_ansible.pub
- id_rsa_root.pub
- main.yml
- setup-Debian.yml
- setup-RedHat.yml
- Debian.yml
- RedHat.yml
- Rocky.yml
- .gitignore
- ansible.cfg
- inventory
- README.md
- killer-shell-cka-simulator.png
- kubeadm-ha-topology-stacked-etcd.png
- bonus-task-solution.yaml
- busybox.yaml
- cka-memlimit-ns.yaml
- deployment-mysql.yaml
- deployment-wordpress.yaml
- grafana.yaml
- httpd-control-plane.yaml
- httpd-healthcheck-loadbalancer.yaml
- httpd-healthcheck-nodeport.yaml
- httpd-healthcheck.yaml
- httpd-liveness-readiness.yaml
- httpd-persistent.yaml
- httpd-pii-demo.yaml
- ingress-blue-green.yaml
- kubernetes-dashboard-sa.yaml
- multi-container.yaml
- mysql-pod-secret.yaml
- namespace.yaml
- netpol-blue-green-pods.yaml
- netpol-blue-green.yaml
- netpol-mysql.yaml
- nginx-deployment.yaml
- peasant-csr.yaml
- peasant-role-binding.yaml
- persistentvolume.yaml
- pv-httpd-webroot.yaml
- pv-mysql.yaml
- pvc-httpd-webroot.yaml
- pvc-mysql.yaml
- secret-mysql.yaml
- service-mysql.yaml
- service-wordpress.yaml
- storageclass.yaml
- webapp-color-use-configmap.yaml
- .gitignore
- break-kubernetes-cluster.sh
- README.md
- killer-shell-ckad-simulator.png
- broken-role.yaml
- ckad-memlimit.yaml
- crondate.yaml
- customresourcedefinition.yaml
- grafana.yaml
- httpd-blue-green.yaml
- httpd-blue.yaml
- httpd-canary.yaml
- httpd-green.yaml
- httpd-liveness-readiness.yaml
- httpd-memlimit.yaml
- httpd-persistent.yaml
- httpd-resource-limits.yaml
- ingress-blue-green.yaml
- ingress-nginx-deploy-github.yaml
- mysql-pod-secret.yaml
- netpol-blue-green.yaml
- nginx-deployment.yaml
- pi-job.yaml
- pod-use-sa.yaml
- pv-httpd-webroot.yaml
- pvc-httpd-webroot.yaml
- unprivileged.yaml
- web-multi-container.yaml
- webapp-canary-blue.yaml
- webapp-canary-green.yaml
- webapp-color.yaml
- Dockerfile
- README.md
- README.md
- grafana-dashboard-kubernetes.png
- grafana-dashboard-mikrotik-exporter.png
- grafana-dashboard-pihole-exporter.png
- grafana-dashboard-speedtest.png
- kubecost-assets.png
- kubecost-monthly-cost.png
- kubecost-request-sizing-recommendations.png
- kubecost-savings.png
- kubecost-usage-kibana.png
- kubecost-usage-prometheus.png
- homelab-pxe-boot-menu.png
- kubernetes-homelab-diagram.png
- pii-demo-blue.png
- pii-demo-green.png
- pii-demo-istio-block-diagram-blue-green.png
- pii-demo-istio-block-diagram-single.png
- pii-demo-istio-versioned-app-graph-kiali.png
- pii-demo-istio-workload-graph-kiali.png
- terraform-aws-iam-permissions.json
- truenas-dashboard.png
- virt-manager-kvm-hosts-provisioned.png
- .gitignore
- alertmanager-cluster-role.yml
- alertmanager-config-map.yml
- alertmanager-deployment.yml
- alertmanager-pv.yml.off
- alertmanager-pvc.yml
- alertmanager-service.yml
- README.md
- argocd-install.yaml
- README.md
- calico.yaml
- README.md
- coredns-deployment.yml
- dashboard.yml
- metrics-server-components.yml
- README.md
- elastic-certificates-secret.yml
- elastic-credentials-secret.yml
- README.md
- values-elasticsearch.yml
- values-filebeat.yml
- values-kibana.yml
- .gitignore
- grafana-config-map-dashboard-providers.yml
- grafana-config-map-dashboards-amazon-ebs.yml
- grafana-config-map-dashboards-amazon-ec2.yml
- grafana-config-map-dashboards-aws-billing.yml
- grafana-config-map-dashboards-aws-ec2.yml
- grafana-config-map-dashboards-bind.yml
- grafana-config-map-dashboards-etcd.yml
- grafana-config-map-dashboards-haproxy.yml
- grafana-config-map-dashboards-k8s-cluster-monitoring.yml
- grafana-config-map-dashboards-k8s-cluster.yml
- grafana-config-map-dashboards-mikrotik.yml
- grafana-config-map-dashboards-mysqld-exporter.yml
- grafana-config-map-dashboards-node-exporter.yml
- grafana-config-map-dashboards-pihole-exporter.yml
- grafana-config-map-dashboards-speedtest.yml
- grafana-config-map-dashboards-velero.yml
- grafana-config-map-dashboards-x509-cert.yml
- grafana-config-map-datasource.yml
- grafana-config-map-ini.yml
- grafana-deployment.yml
- grafana-pv.yml.off
- grafana-pvc.yml
- grafana-secret-iam-cloudwatch.yml
- grafana-secret-influxdb.yml
- grafana-secret-tls.yml
- grafana-service.yml
- grafana.ini.default
- README.md
- kubecost-service.yaml
- label-k8s-nodes.sh
- README.md
- values.yaml
- .gitignore
- freenas-nfs.yaml
- README.md
- .gitignore
- backend.tf
- provider.tf
- README.md
- s3.tf
- variables.tf
- .gitignore
- README.md
- values.yaml
- velero-create-backup-all-ns.sh
- velero-create-schedule-all-ns.sh
- README.md
- values.yml
- Dockerfile
- healthcheck-deployment.yml
- healthcheck-gateway.yml
- healthcheck-service.yml
- README.md
- istio-kubernetes.yml
- istio-operator.yml
- README.md
- istio-addon-grafana.yml
- README.md
- istio-addon-jaeger.yml
- README.md
- istio-addon-kiali.yml
- README.md
- istio-addon-prometheus.yml
- README.md
- kube-state-metrics-cluster-role.yml
- kube-state-metrics-deployment.yml
- kube-state-metrics-service.yml
- .gitignore
- loki-deployment.yml
- loki-pvc.yml
- promtail-deployment.yml
- README.md
- metallb-config-map.yml
- metallb-deployment.yml
- metallb-secret.yml
- namespace.yml
- README.md
- .gitignore
- mikrotik-exporter-config-map.yml
- mikrotik-exporter-deployment.yml
- mikrotik-exporter-secret.yml
- mikrotik-exporter-service.yml
- README.md
- alertmanager-virtual-service.yml
- gateway.yml
- grafana-virtual-service.yml
- istio-ingressgateway-tls-secret.yml
- prometheus-virtual-service.yml
- _helpers.sh
- add-client.sh
- generate-config.sh
- set-secrets.sh
- openvpn-deployment.yaml
- README.md
- .gitignore
- pihole-exporter-config-map.yml
- pihole-exporter-deployment.yml
- pihole-exporter-secret.yml
- pihole-exporter-service.yml
- README.md
- httpd-deployment.yml
- httpd-service.yml
- istio-gateway-peer-virtual-service.yml
- mysql-config-map-initdb.yml
- mysql-config-map.yml
- mysql-deployment.yml
- mysql-secret.yml
- mysql-service.yml
- README.md
- httpd-deployment.yml
- httpd-service.yml
- istio-gateway.yml
- mysql-config-map-initdb.yml
- mysql-config-map.yml
- mysql-deployment.yml
- mysql-secret.yml
- mysql-service.yml
- namespace.yml
- README.md
- namespace.yml
- nginx-deployment.yml
- startup-lock-daemon-set.yml
- prometheus-cluster-role.yml
- prometheus-config-map.yml
- prometheus-deployment.yml
- prometheus-pvc.yml
- prometheus-service.yml
- README.md
- speedtest-from-mysql.csv
- speedtest-line-protocol.txt
- speedtest-with-epoch-time.txt
- convert-date-to-unit-epoch.sh
- csv-to-line-protocol.py
- speedtest-to-influxdb.py
- Dockerfile
- grafana-dashboard-speedtest.json
- influxdb-pvc.yml
- influxdb-secret-tls.yml
- influxdb-service.yml
- influxdb-statefulset.yml
- README.md
- speedtest-cronjob.yml
- speedtest-secret.yml
- monitoring-ns-istio-injection-enabled.yml
- README.md
- rocky8-packer-ks.cfg
- rocky9-packer-ks.cfg
- upload-image-to-nfs.sh
- .gitignore
- README.md
- rocky8.json
- rocky9.json
- centos7-k8s-ks.cfg
- README.md
- rocky8-k8s-ks.cfg
- default
- README.md
- .gitignore
- .gitignore
- backend.tf
- k8s-alertmanager.tf
- k8s-calico.tf
- k8s-dashboard.tf
- k8s-grafana.tf
- k8s-httpd-healthcheck.tf
- k8s-istio-addons.tf
- k8s-istio.tf
- k8s-kube-state-metrics.tf
- k8s-kubecost.tf
- k8s-metallb.tf
- k8s-monitoring-ns-with-istio.tf
- k8s-monitoring-ns.tf
- k8s-pii-demo.tf
- k8s-prometheus.tf
- k8s-speedtest-influxdb.tf
- k8s-x509-certificate-exporter.tf
- provider.tf
- README.md
- variables.tf
- version.tf
- LICENSE
- manifest.json
- README.md
- VERSIONS.md
π Installation Guide
1. Get the code
git clone https://github.com/lisenet/kubernetes-homelab
Downloads the entire project code from GitHub to your computer.
cd kubernetes-homelab
Moves into the project folder you just downloaded.
2. Docker
Easy RecommendedPrerequisites
- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker build -f ckad/Dockerfile -t kubernetes-homelab .
Builds a runnable image based on the Dockerfile.
docker run -p 8080:80 kubernetes-homelab
Runs the built image as an actual container.
Run docker compose ps to check the containers are Up. If the README mentions a port, open http://localhost:PORT in your browser.
// repository documentation
Was this content helpful?
(0 ratings)
