# Additional manual steps ## Cluster Setup ```bash # new first server node curl -sfL https://get.k3s.io | K3S_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= sh -s - server \ --server https://: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" ``` ## Longhorn Storage On all nodes install [open-iscsi](https://longhorn.io/docs/1.5.1/deploy/install/#installing-open-iscsi). ```sh helm repo add longhorn https://charts.longhorn.io helm repo update helm install longhorn longhorn/longhorn --namespace longhorn-system --create-namespace --version 1.5.1 ``` ## 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 ```