add k3s arch
This commit is contained in:
65
arch/k3s.md
Normal file
65
arch/k3s.md
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
# K3S Cluster
|
||||||
|
|
||||||
|
## Cluster Setup
|
||||||
|
|
||||||
|
1. Install wireguard
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pacman -S wireguard-tools linux-headers
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Assign static IPs to each node
|
||||||
|
|
||||||
|
/etc/dhcpcd.conf
|
||||||
|
|
||||||
|
```conf
|
||||||
|
...
|
||||||
|
interface enp1s0
|
||||||
|
static ip_address=192.168.122.51/24 # 52, 53
|
||||||
|
static routers=192.168.122.1
|
||||||
|
static domain_name_servers=192.168.122.1
|
||||||
|
```
|
||||||
|
|
||||||
|
## K3S Installation
|
||||||
|
|
||||||
|
1. Generate a secure token
|
||||||
|
|
||||||
|
```bash
|
||||||
|
umask 077
|
||||||
|
k3s token generate > token.txt
|
||||||
|
export SECRET=$(cat token.txt)
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Create the cluster
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -sfL https://get.k3s.io | K3S_TOKEN=$SECRET sh -s - server \
|
||||||
|
--cluster-init \
|
||||||
|
--flannel-backend=wireguard-native \
|
||||||
|
--disable=traefik \
|
||||||
|
--secrets-encryption \
|
||||||
|
--tls-san=192.168.122.51
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Join each server node
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -sfL https://get.k3s.io | K3S_TOKEN=$SECRET sh -s - server \
|
||||||
|
--server https://192.168.122.51:6443 \
|
||||||
|
--flannel-backend=wireguard-native \
|
||||||
|
--disable=traefik \
|
||||||
|
--secrets-encryption \
|
||||||
|
--tls-san=192.168.122.52
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Copy the kube config at /etc/rancher/k3s/k3s.yaml to YOUR computer at ~/.kube/dev-config
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export KUBECONFIG=~/.kube/dev-config
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Modify the dev-config file's `server` attribute, replace with your IP/hostname
|
||||||
|
|
||||||
|
## Secrets Encryption
|
||||||
|
|
||||||
|
<https://docs.k3s.io/cli/secrets-encrypt>
|
||||||
Reference in New Issue
Block a user