Installation of NEVIS
Introduction
I decided to install NEVIS inside a kubernetes cluster.
Installation in Kubernetes Cluster
Installation of kubernetes
Fedora installation of kubernetes
sudo dnf install kubernetes kubernetes-kubeadm kubernetes-client
Open firewall ports 6443, 10250
sudo systemctl enable kubelet.service
sudo systemctl enable containerd
sudo systemctl start containerd
sudo swapoff -a
sudo dnf install iptables iproute-tc
sudo cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
# sysctl params required by setup, params persist across reboots
sudo cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
sudo systemctl enable --now kubelet
sudo kubeadm init
Kubelet configuration
Accessing the cluster as normal user
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Useful commands
sudo systemctl status kubelet
sudo journalctl -u kubelet
ss -tlnp | grep 6443
kubectl config use-context
kubectl config view
kubectl cluster-info
kubectl get pods --all-namespaces
Additional .conf files:
The kubernetes-kubeadm rpm installs an overriding kubelet
unit file at:
/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
We strongly recommend to not modify either file as any changes could be lost during an update.
As documented by the Kubernetes team (https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/kubelet-integration/#the-kubelet-drop-in-file-for-systemd), create the following directory for user managed, system-level systemd kubelet
overrides:
$ sudo mkdir -p /etc/systemd/system/kubelet.service.d/
Then create a unit file (.conf
extension required) and copy the file to the directory listed above. Settings in this file will override settings from either or both of the default systemd files.
misc
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.1.35:6443 --token wne3u6.hpg5uosvmci8k4fv \
--discovery-token-ca-cert-hash sha256:ec9446e1212c2fa71ab54585acbcba31e8f59ad2b22221c9641dcae4ec36df2b