Files
k8s/README.md

42 lines
1.6 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 `init-deploy.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 (change the configmap to adapt it to your network)
- **Traefik** as the ingress controller on IP 10.50.3.30 (change it in the values.yaml to adapt it to your network)
- **Cert-Manager** to manage the internal certificates. Remember to update the API key!
- **Longhorn** as the persistent storage provider (change the host to adapt it to your network)
## 🚀 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)