Files
codecontender-doc/content/setup-k8s.asciidoc
2024-07-22 16:56:16 +02:00

135 lines
3.1 KiB
Plaintext

=== Setup Kubernetes
In this guide we are using microk8s to setup a Kubernetes cluster.
To setup a Micro K8S Cluster on you need ubuntu maschines with static IP addresses, a working internet connection and optional for metallb "loadbalancer" an extra IP range for the services.
The network configuration for ubuntu 20.04+ is done with netplan.
Config in /etc/netplan/00-installer-config.yaml and apply with sudo netplan apply
Example Configuration:
```
# This is the network config written by 'subiquity'
network:
ethernets:
ens18:
addresses:
- 141.57.9.180/22
nameservers:
addresses:
- 141.57.1.94
search:
- imn.htwk-leipzig.de
routes:
- to: default
via: 141.57.11.253
version: 2
```
[cols="1,1,1,1,1", options="header"]
|===
| Name | IP | SSH Port | Proxmox Node | Config
| k8s-nfs | 141.57.9.171 | 23505 | yprox | 4 Core + 4 GB RAM
| rancher | 141.57.9.170 | 23505 | xprox | 4 Core + 4 GB RAM
| k8s-node1 | 141.57.9.180 | 23505 | yprox | 4 Core + 8 GB RAM
| k8s-node2 | 141.57.9.181 | 23505 | zprox | 4 Core + 8 GB RAM
| k8s-node3 | 141.57.9.182 | 23505 | yprox | 8 Core + 32 GB RAM
|===
We installed Ubuntu 22.04 on the nodes and configured the network with netplan.
The current snap version for microk8s is 1.28.0 wich is supported by the current rancher release.
```
snap install microk8s --classic --channel=1.28/stable
```
Join the groups and rights so without root
```
sudo usermod -a -G microk8s $USER
sudo mkdir -p ~/.kube
sudo chown -f -R $USER ~/.kube
newgrp microk8s # to reload shell groups without close and open
```
Check the status while Kubernetes starts
```
microk8s status --wait-ready
```
Turn on the services you want
```
microk8s enable dns
```
```
microk8s enable registry
```
```
microk8s enable rbac
```
```
microk8s enable ingress
```
Start using Kubernetes
```
microk8s kubectl get all --all-namespaces
```
Um weitere Nodes mit microk8s zu verbinden auf dem main node:
```bash
microk8s add-node
```
Example output:
```bash
From the node you wish to join to this cluster, run the following:
microk8s join 192.168.122.210:25000/b346782cc8956830924c04f2cf1b1745/dadf654db615
Use the '--worker' flag to join a node as a worker not running the control plane, eg:
microk8s join 192.168.122.210:25000/b346782cc8956830924c04f2cf1b1745/dadf654db615 --worker
If the node you are adding is not reachable through the default interface you can use one of the following:
microk8s join 192.168.122.210:25000/b346782cc8956830924c04f2cf1b1745/dadf654db615
microk8s join 192.168.123.1:25000/b346782cc8956830924c04f2cf1b1745/dadf654db615
microk8s join 172.17.0.1:25000/b346782cc8956830924c04f2cf1b1745/dadf654db615
```
Alias for easy setup copy paste commands:
```
alias helm="microk8s helm"
```
```
alias kubectl="microk8s kubectl"
```
If cattle-cluster-agent in cattle-system reboots multiple times and has dns resolving problems change the config.
```
kubectl edit deployment cattle-cluster-agent -n cattle-system
...
dnsPolicy: Default
```