|
|
|
@ -1,14 +1,32 @@
|
|
|
|
|
# Additional manual steps
|
|
|
|
|
|
|
|
|
|
## Control
|
|
|
|
|
|
|
|
|
|
(as root)
|
|
|
|
|
```sh
|
|
|
|
|
apt update && apt upgrade -y
|
|
|
|
|
reboot
|
|
|
|
|
apt install apparmor apparmor-utils -y
|
|
|
|
|
## Cluster Setup
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# new first server node
|
|
|
|
|
curl -sfL https://get.k3s.io | K3S_TOKEN=<shared-token> sh -s - server \
|
|
|
|
|
--cluster-init \
|
|
|
|
|
--cluster-cidr="10.243.0.0/16" \
|
|
|
|
|
--flannel-backend=wireguard-native \
|
|
|
|
|
--write-kubeconfig-mode=644 \
|
|
|
|
|
--disable local-storage \
|
|
|
|
|
--node-name="$(hostname -f)" \
|
|
|
|
|
--kube-controller-manager-arg="bind-address=0.0.0.0" \
|
|
|
|
|
--kube-proxy-arg="metrics-bind-address=0.0.0.0" \
|
|
|
|
|
--kube-scheduler-arg="bind-address=0.0.0.0"
|
|
|
|
|
|
|
|
|
|
# second server node
|
|
|
|
|
curl -sfL https://get.k3s.io | K3S_TOKEN=<shared-token> sh -s - server \
|
|
|
|
|
--server https://<server-ip>:6443 \
|
|
|
|
|
--cluster-cidr="10.243.0.0/16" \
|
|
|
|
|
--flannel-backend=wireguard-native \
|
|
|
|
|
--write-kubeconfig-mode=644 \
|
|
|
|
|
--disable local-storage \
|
|
|
|
|
--node-name="$(hostname -f)" \
|
|
|
|
|
--kube-controller-manager-arg="bind-address=0.0.0.0" \
|
|
|
|
|
--kube-proxy-arg="metrics-bind-address=0.0.0.0" \
|
|
|
|
|
--kube-scheduler-arg="bind-address=0.0.0.0"
|
|
|
|
|
```
|
|
|
|
|
Follow https://community.hetzner.com/tutorials/k3s-glusterfs-loadbalancer
|
|
|
|
|
|
|
|
|
|
## Longhorn Storage
|
|
|
|
|
|
|
|
|
@ -20,25 +38,10 @@ helm repo update
|
|
|
|
|
helm install longhorn longhorn/longhorn --namespace longhorn-system --create-namespace --version 1.5.1
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Hetzner Storage
|
|
|
|
|
|
|
|
|
|
https://github.com/hetznercloud/csi-driver/blob/main/docs/kubernetes/README.md
|
|
|
|
|
|
|
|
|
|
## Metrics
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Prometheus / Grafana
|
|
|
|
|
https://grafana.com/blog/2023/01/19/how-to-monitor-kubernetes-clusters-with-the-prometheus-operator/
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/bundle.yaml --force-conflicts=true --server-side=true
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Traefik (fix)
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v2.10/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml
|
|
|
|
|
```
|
|
|
|
|
```
|