Skip to content

thepaulmacca/k8s-local-cluster

Repository files navigation

Kubernetes Local Cluster

Overview

A local Kubernetes cluster using kind. This will be regularly updated to use the default node image for each release.

Using a local cluster is great for learning, experimentation and practice. It's also useful to have when you're studying for any of the Kubernetes certifications.

Note

For the CKS exam, you'll have to create a bare-metal cluster due to limitations with kind. I've found the cks-course-environment repo to be sufficient, although you'll need to tweak it as per the upcoming changes to the curriculum.

Getting Started

Single Node Cluster

Run ./setup.sh to install a single-node cluster (default).

Multi-Node Cluster

Run ./setup.sh to install a multi-node cluster with one control plane and 2 worker nodes.

Installed Software

The setup.sh script installs:

  • Calico for testing Network Policies
  • Ingress NGINX for testing Ingress

All other software is currently installed using a helmfile. I'm planning on using Argo CD instead in the near future.

Ingress

I'm using nip.io for the below resources.

Argo CD API Server

An ingress resource is created for accessing the Argo CD API Server. Go to http://argocd.127.0.0.1.nip.io and then follow the rest of the login instructions.

Prometheus

Ingress has been enabled via the values-kube-prometheus-stack.yaml file. Go to http://prometheus.127.0.0.1.nip.io to access the server.

Grafana

Ingress has been enabled via the values-kube-prometheus-stack.yaml file. Go to http://grafana.127.0.0.1.nip.io and login with:

  • Username: admin
  • Password: prom-operator