Files
k8s/README.md

42 lines
1.5 KiB
Markdown

# Kubernetes Cluster Deployment Guide
This guide describes how to deploy a Kubernetes cluster tailored to my environment using the provided `redbutton.sh` script.
Just be sure to edit the variables in the `redbutton.sh` script. I think you can scale this out by adding more hosts and adjusting the for loop but I haven't tried it yet. I needed three machines and that is what I worked with.
## ⚙️ Pre-requisites
Before running the deployment script, ensure the following are in place:
- `kubectl` and `helm` are installed on your local machine
- The remote user can execute `sudo` commands **without a password prompt**
- SSH host keys of the target nodes are already added to your system (to avoid interactive confirmation prompts)
## 🧭 Deployment Goals
This setup will create a Kubernetes cluster with the following topology and components:
- **1 Control Plane Node**
- **2 Worker Nodes**
- **Calico** as the CNI (Container Network Interface)
- **MetalLB** as the cloud load balancer for bare metal services on your desired range
- **Traefik** as the ingress controller on your desired IP
- **Cert-Manager** to manage the internal certificates. Remember to set the API Key!
- **Longhorn** as the persistent storage provider to your desired hostname
## 🚀 How to Deploy
To initiate the deployment, run the provided script:
```bash
echo "CF_API=YourSuperSecretAPIKey" > .env
chmod +x redbutton.sh
./redbutton.sh
```
May the kubelets be ever in your favor, and your etcd never split!
![alt text](robotnik.png)