argobox-portfolio/public/blog/posts/k3s-installation-guide.md

90 lines
2.1 KiB
Markdown
Executable File

---
title: K3s Installation Guide
description: A comprehensive guide to installing and configuring K3s for your home lab
pubDate: 2025-04-19
heroImage: /blog/images/posts/k3installation.png
category: kubernetes
tags:
- kubernetes
- k3s
- homelab
- tutorial
readTime: 8 min read
---
# K3s Installation Guide
K3s is a lightweight Kubernetes distribution designed for resource-constrained environments, perfect for home labs and edge computing. This guide will walk you through the installation process from start to finish.
## Prerequisites
- A machine running Linux (Ubuntu 20.04+ recommended)
- Minimum 1GB RAM (2GB+ recommended for multi-workload clusters)
- 20GB+ of disk space
- Root access or sudo privileges
## Basic Installation
The simplest way to install K3s is using the installation script:
```bash
curl -sfL https://get.k3s.io | sh -
```
This will install K3s as a server and start the service. To verify it's running:
```bash
sudo k3s kubectl get node
```
## Advanced Installation Options
### Master Node with Custom Options
For more control, you can use environment variables:
```bash
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable=traefik" sh -
```
### Adding Worker Nodes
1. On your master node, get the node token:
```bash
sudo cat /var/lib/rancher/k3s/server/node-token
```
2. On each worker node, run:
```bash
curl -sfL https://get.k3s.io | K3S_URL=https://<master-node-ip>:6443 K3S_TOKEN=<node-token> sh -
```
## Accessing the Cluster
After installation, the kubeconfig file is written to `/etc/rancher/k3s/k3s.yaml`. To use kubectl externally:
1. Copy this file to your local machine
2. Set the KUBECONFIG environment variable:
```bash
export KUBECONFIG=/path/to/k3s.yaml
```
## Uninstalling K3s
If you need to uninstall:
- On server nodes: `/usr/local/bin/k3s-uninstall.sh`
- On agent nodes: `/usr/local/bin/k3s-agent-uninstall.sh`
## Next Steps
Now that you have K3s running, you might want to:
- Deploy your first application
- Set up persistent storage
- Configure ingress for external access
Stay tuned for more guides on these topics!